Issue with camera being used post release
Hi, Firstly thanks for the great library. Ive implemented it in an app of mine and Im getting the following error for certain users
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:1944) at com.github.florent37.camerafragment.internal.manager.impl.Camera1Manager.getPhotoSizeForQuality(Camera1Manager.java:271) at com.github.florent37.camerafragment.internal.manager.impl.Camera1Manager.getPhotoQualityOptions(Camera1Manager.java:680) at com.github.florent37.camerafragment.internal.controller.impl.Camera1Controller.getPhotoQualityOptions(Camera1Controller.java:216) at com.github.florent37.camerafragment.internal.ui.BaseAnncaFragment.setCameraPreview(BaseAnncaFragment.java:653) at com.github.florent37.camerafragment.internal.ui.BaseAnncaFragment$3.updateCameraPreview(BaseAnncaFragment.java:188) at com.github.florent37.camerafragment.internal.controller.impl.Camera1Controller.onCameraOpened(Camera1Controller.java:164) at com.github.florent37.camerafragment.internal.controller.impl.Camera1Controller.onCameraOpened(Camera1Controller.java:32) at com.github.florent37.camerafragment.internal.manager.impl.Camera1Manager$1$1.run(Camera1Manager.java:74) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) 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:902) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697)
Its not something happening on every device and everytime its used but it does crop up from time to time. Havent been able to identify the exact conditions as yet but any help would be appreciated. Thanks.
I'm having the same issue one in three tries with a rooted galaxy s4
I have the same problem with Nexus_4_API_19. Sometimes works and sometines not working.
I don't know what happend
This is the stack;
java.lang.NullPointerException 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)
A massive hack fixed it for me. Adding a delay of 1000ms using a Handler. I feel dirty though.
I am also facing the same problem. one use case to reproduce this issue - try switching camera (very fast). You will be able see same crash.
@RafagSL Where did you add delay of 1000ms?
Adding the below code before camera.release() fixed the issue for me.
camera.stopPreview(); camera.setPreviewCallback(null); camera.lock();