From 3878a5e63098ec28c889a8f67d2f04a0256a3983 Mon Sep 17 00:00:00 2001 From: Andrei Lisun Date: Tue, 14 Feb 2017 22:21:25 +0200 Subject: [PATCH] Catch native_takePicture exception --- .../google/android/cameraview/Camera1.java | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/library/src/main/api14/com/google/android/cameraview/Camera1.java b/library/src/main/api14/com/google/android/cameraview/Camera1.java index c15ffb69..58b7ca8b 100644 --- a/library/src/main/api14/com/google/android/cameraview/Camera1.java +++ b/library/src/main/api14/com/google/android/cameraview/Camera1.java @@ -21,6 +21,7 @@ import android.hardware.Camera; import android.os.Build; import android.support.v4.util.SparseArrayCompat; +import android.util.Log; import android.view.SurfaceHolder; import java.io.IOException; @@ -31,6 +32,8 @@ @SuppressWarnings("deprecation") class Camera1 extends CameraViewImpl { + private static final String TAG = "Camera1"; + private static final int INVALID_CAMERA_ID = -1; private static final SparseArrayCompat FLASH_MODES = new SparseArrayCompat<>(); @@ -227,14 +230,18 @@ public void onAutoFocus(boolean success, Camera camera) { } void takePictureInternal() { - mCamera.takePicture(null, null, null, new Camera.PictureCallback() { - @Override - public void onPictureTaken(byte[] data, Camera camera) { - mCallback.onPictureTaken(data); - camera.cancelAutoFocus(); - camera.startPreview(); - } - }); + try { + mCamera.takePicture(null, null, null, new Camera.PictureCallback() { + @Override + public void onPictureTaken(byte[] data, Camera camera) { + mCallback.onPictureTaken(data); + camera.cancelAutoFocus(); + camera.startPreview(); + } + }); + } catch (RuntimeException re) { + Log.e(TAG, "takePicture failed", re); + } } @Override