diff --git a/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java b/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java
index d586ca4..2937ed2 100644
--- a/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java
+++ b/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java
@@ -20,7 +20,6 @@
 import android.app.admin.DevicePolicyManager;
 import android.content.ComponentName;
 import android.hardware.Camera;
-import android.hardware.Camera.FaceDetectionListener;
 import android.os.Build;
 import android.provider.MediaStore.MediaColumns;
 import android.view.View;
@@ -82,12 +81,21 @@
     public static final boolean HAS_SET_SYSTEM_UI_VISIBILITY =
             hasMethod(View.class, "setSystemUiVisibility", int.class);
 
-    public static final boolean HAS_FACE_DETECTION =
-            hasClass(Camera.class, "android.hardware.Camera$FaceDetectionListener") &&
-            hasMethod(Camera.class, "setFaceDetectionListener", FaceDetectionListener.class) &&
-            hasMethod(Camera.class, "startFaceDetection") &&
-            hasMethod(Camera.class, "stopFaceDetection") &&
-            hasMethod(Camera.Parameters.class, "getMaxNumDetectedFaces");
+    public static final boolean HAS_FACE_DETECTION;
+    static {
+        boolean hasFaceDetection = false;
+        try {
+            Class<?> listenerClass = Class.forName(
+                    "android.hardware.Camera$FaceDetectionListener");
+            hasFaceDetection =
+                    hasMethod(Camera.class, "setFaceDetectionListener", listenerClass) &&
+                    hasMethod(Camera.class, "startFaceDetection") &&
+                    hasMethod(Camera.class, "stopFaceDetection") &&
+                    hasMethod(Camera.Parameters.class, "getMaxNumDetectedFaces");
+        } catch (Throwable t) {
+        }
+        HAS_FACE_DETECTION = hasFaceDetection;
+    }
 
     public static final boolean HAS_GET_CAMERA_DISABLED =
             hasMethod(DevicePolicyManager.class, "getCameraDisabled", ComponentName.class);
@@ -146,15 +154,4 @@
             return false;
         }
     }
-
-    private static boolean hasClass(Class<?> klass, String className) {
-        Class<?>[] klasses = klass.getClasses();
-        for (int i = 0; i < klasses.length; ++i) {
-            if (klasses[i].getName().equals(className)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
 }
