camera-samples icon indicating copy to clipboard operation
camera-samples copied to clipboard

CameraXBasic Doesn't works on API 28 & 29

Open gabriel-TheCode opened this issue 2 years ago • 0 comments

It fail to capture images, it tells me Photo capture failed: Camera is closed when I close the activity. Sometimes I have this error below. But it works on API 31.

Emulators :

  • Pixel_3a_API_31_arm64-v8a
  • Pixel 4 API 29
  • Pixel 3 XL API 28
2022-08-02 16:29:45.329 7632-7663/com.android.example.cameraxbasic E/CameraCaptureSession: Session 0: Exception while stopping repeating: 
    android.hardware.camera2.CameraAccessException: CAMERA_ERROR (3): The camera device has encountered a serious error
        at android.hardware.camera2.impl.CameraDeviceImpl.checkIfCameraClosedOrInError(CameraDeviceImpl.java:2406)
        at android.hardware.camera2.impl.CameraDeviceImpl.stopRepeating(CameraDeviceImpl.java:1104)
        at android.hardware.camera2.impl.CameraCaptureSessionImpl.close(CameraCaptureSessionImpl.java:526)
        at androidx.camera.camera2.internal.SynchronizedCaptureSessionBaseImpl.close(SynchronizedCaptureSessionBaseImpl.java:464)
        at androidx.camera.camera2.internal.CaptureSession.release(CaptureSession.java:418)
        at androidx.camera.camera2.internal.Camera2CameraImpl.releaseSession(Camera2CameraImpl.java:518)
        at androidx.camera.camera2.internal.Camera2CameraImpl.resetCaptureSession(Camera2CameraImpl.java:1201)
        at androidx.camera.camera2.internal.Camera2CameraImpl.closeCamera(Camera2CameraImpl.java:432)
        at androidx.camera.camera2.internal.Camera2CameraImpl$StateCallback.reopenCameraAfterError(Camera2CameraImpl.java:1665)
        at androidx.camera.camera2.internal.Camera2CameraImpl$StateCallback.handleErrorOnOpen(Camera2CameraImpl.java:1617)
        at androidx.camera.camera2.internal.Camera2CameraImpl$StateCallback.onError(Camera2CameraImpl.java:1593)
        at androidx.camera.camera2.internal.CameraDeviceStateCallbacks$ComboDeviceStateCallback.onError(CameraDeviceStateCallbacks.java:121)
        at android.hardware.camera2.impl.CameraDeviceImpl$CameraDeviceCallbacks.notifyError(CameraDeviceImpl.java:1900)
        at android.hardware.camera2.impl.CameraDeviceImpl$CameraDeviceCallbacks.lambda$Sm85frAzwGZVMAK-NE_gwckYXVQ(Unknown Source:0)
        at android.hardware.camera2.impl.-$$Lambda$CameraDeviceImpl$CameraDeviceCallbacks$Sm85frAzwGZVMAK-NE_gwckYXVQ.accept(Unknown Source:8)
        at com.android.internal.util.function.pooled.PooledLambdaImpl.doInvoke(PooledLambdaImpl.java:258)
        at com.android.internal.util.function.pooled.PooledLambdaImpl.invoke(PooledLambdaImpl.java:182)
        at com.android.internal.util.function.pooled.OmniFunction.run(OmniFunction.java:77)
        at androidx.camera.core.impl.utils.executor.SequentialExecutor$1.run(SequentialExecutor.java:111)
        at androidx.camera.core.impl.utils.executor.SequentialExecutor$QueueWorker.workOnQueue(SequentialExecutor.java:231)
        at androidx.camera.core.impl.utils.executor.SequentialExecutor$QueueWorker.run(SequentialExecutor.java:173)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:764)
2022-08-02 16:29:59.943 7632-7632/com.android.example.cameraxbasic E/CameraXBasic: Photo capture failed: Camera is closed.
    androidx.camera.core.ImageCaptureException: Camera is closed.
        at androidx.camera.core.ImageCapture$ImageCaptureRequest.lambda$notifyCallbackError$1$ImageCapture$ImageCaptureRequest(ImageCapture.java:2166)
        at androidx.camera.core.-$$Lambda$ImageCapture$ImageCaptureRequest$KlqAxzwB-08wcOFrjThjf8ncF2g.run(Unknown Source:8)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: androidx.camera.core.CameraClosedException: Camera is closed.
        at androidx.camera.core.ImageCapture.abortImageCaptureRequests(ImageCapture.java:1051)
        at androidx.camera.core.ImageCapture.onStateDetached(ImageCapture.java:1045)
        at androidx.camera.camera2.internal.Camera2CameraImpl.notifyStateDetachedToUseCases(Camera2CameraImpl.java:805)
        at androidx.camera.camera2.internal.Camera2CameraImpl.detachUseCases(Camera2CameraImpl.java:824)
        at androidx.camera.core.internal.CameraUseCaseAdapter.detachUseCases(CameraUseCaseAdapter.java:346)
        at androidx.camera.lifecycle.LifecycleCamera.onStop(LifecycleCamera.java:97)
        at androidx.camera.lifecycle.LifecycleCamera.suspend(LifecycleCamera.java:140)
        at androidx.camera.lifecycle.LifecycleCameraRepository.suspendUseCases(LifecycleCameraRepository.java:435)
        at androidx.camera.lifecycle.LifecycleCameraRepository.setInactive(LifecycleCameraRepository.java:389)
        at androidx.camera.lifecycle.LifecycleCameraRepository$LifecycleCameraRepositoryObserver.onStop(LifecycleCameraRepository.java:506)
        at java.lang.reflect.Method.invoke(Native Method)
        at androidx.lifecycle.ClassesInfoCache$MethodReference.invokeCallback(ClassesInfoCache.java:219)
        at androidx.lifecycle.ClassesInfoCache$CallbackInfo.invokeMethodsForEvent(ClassesInfoCache.java:194)
        at androidx.lifecycle.ClassesInfoCache$CallbackInfo.invokeCallbacks(ClassesInfoCache.java:185)
        at androidx.lifecycle.ReflectiveGenericLifecycleObserver.onStateChanged(ReflectiveGenericLifecycleObserver.java:37)
        at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.java:354)
        at androidx.lifecycle.LifecycleRegistry.backwardPass(LifecycleRegistry.java:284)
        at androidx.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.java:302)
        at androidx.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.java:148)
        at androidx.lifecycle.LifecycleRegistry.setCurrentState(LifecycleRegistry.java:121)
        at androidx.fragment.app.FragmentActivity.markState(FragmentActivity.java:844)
        at androidx.fragment.app.FragmentActivity.markState(FragmentActivity.java:836)
        at androidx.fragment.app.FragmentActivity.markFragmentsCreated(FragmentActivity.java:823)
        at androidx.fragment.app.FragmentActivity.onStop(FragmentActivity.java:523)
        at androidx.appcompat.app.AppCompatActivity.onStop(AppCompatActivity.java:252)
        at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1432)
        at android.app.Activity.performStop(Activity.java:7367)
        at android.app.ActivityThread.callActivityOnStop(ActivityThread.java:4143)
        at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:4121)
        at android.app.ActivityThread.handleStopActivity(ActivityThread.java:4196)
        at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:192)
        at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165)
        at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
2022-08-02 16:29:59.943 7632-7632/com.android.example.cameraxbasic E/CameraXBasic:     at android.os.Handler.dispatchMessage(Handler.java:106)

gabriel-TheCode avatar Aug 02 '22 14:08 gabriel-TheCode