CameraFragment
CameraFragment copied to clipboard
java.lang.RuntimeException Camera is being used after Camera.release() was called
I got this exception just once in a Samsung Galaxy J2 with Android 5.1.1. Library version: 1.0.6.
Here is the full stacktrace:
Fatal Exception: java.lang.RuntimeException: Camera is being used after Camera.release() was called
at android.hardware.Camera.native_getParameters(Camera.java)
at android.hardware.Camera.getParameters(Camera.java:1976)
at com.github.florent37.camerafragment.internal.manager.impl.Camera1Manager.getPhotoSizeForQuality(Camera1Manager.java:261)
at com.github.florent37.camerafragment.internal.manager.impl.Camera1Manager.getPhotoQualityOptions(Camera1Manager.java:624)
at com.github.florent37.camerafragment.internal.controller.impl.Camera1Controller.getPhotoQualityOptions(Camera1Controller.java:210)
at com.github.florent37.camerafragment.internal.ui.BaseAnncaFragment.setCameraPreview(BaseAnncaFragment.java:643)
at com.github.florent37.camerafragment.internal.ui.BaseAnncaFragment$3.updateCameraPreview(BaseAnncaFragment.java:183)
at com.github.florent37.camerafragment.internal.controller.impl.Camera1Controller.onCameraOpened(Camera1Controller.java:158)
at com.github.florent37.camerafragment.internal.controller.impl.Camera1Controller.onCameraOpened(Camera1Controller.java:30)
at com.github.florent37.camerafragment.internal.manager.impl.Camera1Manager$1$1.run(Camera1Manager.java:73)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6946)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
I got the same problem
Go to Camera1Manager.java file. -> closeCamera().
in this method, before camera.release()
. put below two lines of code.
camera.stopPreview();
camera.setPreviewCallback(null);
camera.release();
This solved my problem.