diff --git a/android/src/main/java/com/google/android/cameraview/Camera1.java b/android/src/main/java/com/google/android/cameraview/Camera1.java index 7f7201b..49c66e9 100644 --- a/android/src/main/java/com/google/android/cameraview/Camera1.java +++ b/android/src/main/java/com/google/android/cameraview/Camera1.java @@ -1011,7 +1011,18 @@ class Camera1 extends CameraViewImpl implements MediaRecorder.OnInfoListener, public void run() { synchronized(Camera1.this){ if (mCamera != null) { - Camera.Parameters parameters = mCamera.getParameters(); + Camera.Parameters parameters = null; + + // This might crash on some devices if the camera is not + // available/locked, with a RuntimeException("getParameters failed (empty parameters)") + try{ + parameters = mCamera.getParameters(); + } + catch(Exception e){ + Log.e("CAMERA_1::", "setFocusArea.getParameters failed", e); + parameters = null; + } + if (parameters == null) return; String focusMode = parameters.getFocusMode(); @@ -1104,7 +1115,15 @@ class Camera1 extends CameraViewImpl implements MediaRecorder.OnInfoListener, public void run() { if (mCamera != null) { mCamera.cancelAutoFocus(); - Camera.Parameters parameters = mCamera.getParameters(); + + Camera.Parameters parameters = null; + try{ + parameters = mCamera.getParameters(); + } + catch(Exception e){ + Log.e("CAMERA_1::", "resetFocus.getParameters failed", e); + parameters = null; + } if (parameters == null) return; if (parameters.getFocusMode() != Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE) {