Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't take picture, emulator 12 android #428

Closed
Elektro33rus opened this issue Oct 12, 2021 · 2 comments
Closed

Can't take picture, emulator 12 android #428

Elektro33rus opened this issue Oct 12, 2021 · 2 comments

Comments

@Elektro33rus
Copy link

When using the emulator on Android 12, when trying to take a photo via ImageCapture.takePicture(), a crash appears. On real devices (including Android 12) there is no problem

DeferrableSurface: use count-1, useCount=0 closed=false androidx.camera.core.SurfaceRequest$2@6d66f15 DeferrableSurface: Surface no longer in use[total_surfaces=2, used_surfaces=1](androidx.camera.core.SurfaceRequest$2@6d66f15} DeferrableSurface: use count-1, useCount=0 closed=false androidx.camera.core.impl.ImmediateSurface@cff87a3 DeferrableSurface: Surface no longer in use[total_surfaces=2, used_surfaces=0](androidx.camera.core.impl.ImmediateSurface@cff87a3} Camera2CameraImpl: CameraDevice.onError(): 0 failed with ERROR_CAMERA_DEVICE while in OPENED state. Will attempt recovering from error. Camera2CameraImpl: Attempt to reopen camera[0] after error[ERROR_CAMERA_DEVICE] Camera2CameraImpl: {Camera@15b8141[id=0]} Transitioning camera internal state: OPENED --> REOPENING CameraStateRegistry: Recalculating open cameras: Camera State ------------------------------------------------------------------- Camera@15b8141[id=0] OPENING Camera@3e8ebc3[id=1] UNKNOWN ------------------------------------------------------------------- Open count: 1 (Max allowed: 1) CameraStateMachine: New public camera state CameraState{type=OPENING, error=StateError{code=3, cause=null}} from OPENING and StateError{code=3, cause=null} CameraStateMachine: Publishing new public camera state CameraState{type=OPENING, error=StateError{code=3, cause=null}} Camera2CameraImpl: {Camera@15b8141[id=0]} Resetting Capture Session 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:2350) at android.hardware.camera2.impl.CameraDeviceImpl.stopRepeating(CameraDeviceImpl.java:1277) at android.hardware.camera2.impl.CameraCaptureSessionImpl.close(CameraCaptureSessionImpl.java:579) at androidx.camera.camera2.internal.SynchronizedCaptureSessionBaseImpl.close(SynchronizedCaptureSessionBaseImpl.java:463) at androidx.camera.camera2.internal.CaptureSession.release(CaptureSession.java:428) at androidx.camera.camera2.internal.Camera2CameraImpl.releaseSession(Camera2CameraImpl.java:489) at androidx.camera.camera2.internal.Camera2CameraImpl.resetCaptureSession(Camera2CameraImpl.java:1125) at androidx.camera.camera2.internal.Camera2CameraImpl.closeCamera(Camera2CameraImpl.java:403) at androidx.camera.camera2.internal.Camera2CameraImpl$StateCallback.reopenCameraAfterError(Camera2CameraImpl.java:1552) at androidx.camera.camera2.internal.Camera2CameraImpl$StateCallback.handleErrorOnOpen(Camera2CameraImpl.java:1505) at androidx.camera.camera2.internal.Camera2CameraImpl$StateCallback.onError(Camera2CameraImpl.java:1481) at androidx.camera.camera2.internal.CameraDeviceStateCallbacks$ComboDeviceStateCallback.onError(CameraDeviceStateCallbacks.java:119) at android.hardware.camera2.impl.CameraDeviceImpl.notifyError(CameraDeviceImpl.java:1748) at android.hardware.camera2.impl.CameraDeviceImpl.$r8$lambda$KBQCqQRdhVVn7uHI9Xdha6OqnsU(Unknown Source:0) at android.hardware.camera2.impl.CameraDeviceImpl$$ExternalSyntheticLambda0.accept(Unknown Source:8) at com.android.internal.util.function.pooled.PooledLambdaImpl.doInvoke(PooledLambdaImpl.java:281) at com.android.internal.util.function.pooled.PooledLambdaImpl.invoke(PooledLambdaImpl.java:204) at com.android.internal.util.function.pooled.OmniFunction.run(OmniFunction.java:97) at androidx.camera.core.impl.utils.executor.SequentialExecutor$1.run(SequentialExecutor.java:109) at androidx.camera.core.impl.utils.executor.SequentialExecutor$QueueWorker.workOnQueue(SequentialExecutor.java:229) at androidx.camera.core.impl.utils.executor.SequentialExecutor$QueueWorker.run(SequentialExecutor.java:171) 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:920) Camera2CameraImpl: {Camera@15b8141[id=0]} Releasing session in state REOPENING Camera2CameraImpl: {Camera@15b8141[id=0]} CameraDevice.onDisconnected() Camera2CameraImpl: CameraDevice.onError(): 0 failed with ERROR_CAMERA_IN_USE while in REOPENING state. Will attempt recovering from error. Camera2CameraImpl: Attempt to reopen camera[0] after error[ERROR_CAMERA_IN_USE] Camera2CameraImpl: {Camera@15b8141[id=0]} Transitioning camera internal state: REOPENING --> REOPENING CameraStateMachine: New public camera state CameraState{type=OPENING, error=StateError{code=2, cause=null}} from OPENING and StateError{code=2, cause=null} CameraStateMachine: Publishing new public camera state CameraState{type=OPENING, error=StateError{code=2, cause=null}} Camera2CameraImpl: {Camera@15b8141[id=0]} Resetting Capture Session Camera2CameraImpl: {Camera@15b8141[id=0]} Releasing session in state REOPENING CaptureSession: onSessionFinished() Camera2CameraImpl: {Camera@15b8141[id=0]} CameraDevice.onClosed() Camera2CameraImpl: {Camera@15b8141[id=0]} Camera closed due to error: ERROR_CAMERA_IN_USE Camera2CameraImpl: {Camera@15b8141[id=0]} Attempting camera re-open in 700ms: androidx.camera.camera2.internal.Camera2CameraImpl$StateCallback$ScheduledReopen@b65023e EGL_emulation: app_time_stats: avg=32.01ms min=2.72ms max=145.69ms count=32 Camera2CameraImpl: {Camera@15b8141[id=0]} Attempting to open the camera. CameraStateRegistry: tryOpenCamera(Camera@15b8141[id=0]) [Available Cameras: 0, Already Open: true (Previous state: OPENING)] --> SUCCESS CameraStateRegistry: Recalculating open cameras: Camera State ------------------------------------------------------------------- Camera@15b8141[id=0] OPENING Camera@3e8ebc3[id=1] UNKNOWN ------------------------------------------------------------------- Open count: 1 (Max allowed: 1) Camera2CameraImpl: {Camera@15b8141[id=0]} Cancelling scheduled re-open: androidx.camera.camera2.internal.Camera2CameraImpl$StateCallback$ScheduledReopen@b65023e Camera2CameraImpl: {Camera@15b8141[id=0]} Opening camera. Camera2CameraImpl: {Camera@15b8141[id=0]} Transitioning camera internal state: REOPENING --> OPENING CameraStateMachine: New public camera state CameraState{type=OPENING, error=null} from OPENING and null CameraStateMachine: Publishing new public camera state CameraState{type=OPENING, error=null} UseCaseAttachState: All use case: [androidx.camera.core.ImageCapture-5c695ad3-6509-441d-845a-4a279a54b55e162197574, androidx.camera.core.Preview-cbaebe40-3f69-49b9-a5fd-122f6f964fa7253874695] for camera: 0 Camera2CameraImpl: {Camera@15b8141[id=0]} CameraDevice.onOpened() Camera2CameraImpl: {Camera@15b8141[id=0]} Transitioning camera internal state: OPENING --> OPENED CameraStateRegistry: Recalculating open cameras: Camera State ------------------------------------------------------------------- Camera@15b8141[id=0] OPEN Camera@3e8ebc3[id=1] UNKNOWN ------------------------------------------------------------------- Open count: 1 (Max allowed: 1) CameraStateMachine: New public camera state CameraState{type=OPEN, error=null} from OPEN and null CameraStateMachine: Publishing new public camera state CameraState{type=OPEN, error=null} UseCaseAttachState: All use case: [androidx.camera.core.ImageCapture-5c695ad3-6509-441d-845a-4a279a54b55e162197574, androidx.camera.core.Preview-cbaebe40-3f69-49b9-a5fd-122f6f964fa7253874695] for camera: 0 SyncCaptureSessionBase: [androidx.camera.camera2.internal.SynchronizedCaptureSessionBaseImpl@eba766d] getSurface...done CaptureSession: Opening capture session. DeferrableSurface: New surface in use[total_surfaces=2, used_surfaces=1](androidx.camera.core.SurfaceRequest$2@6d66f15} DeferrableSurface: use count+1, useCount=1 androidx.camera.core.SurfaceRequest$2@6d66f15 DeferrableSurface: New surface in use[total_surfaces=2, used_surfaces=2](androidx.camera.core.impl.ImmediateSurface@cff87a3} DeferrableSurface: use count+1, useCount=1 androidx.camera.core.impl.ImmediateSurface@cff87a3 CaptureSession: Attempting to send capture request onConfigured CaptureSession: Issuing request for session. CaptureSession: CameraCaptureSession.onConfigured() mState=OPENED CaptureSession: CameraCaptureSession.onReady() OPENED

@IlyaKulikovCB
Copy link

Oh, I found a similar closed solution, but in my case I need to use the "3D room", is it possible that this will be fixed in the future?
#423

@ggfan
Copy link
Contributor

ggfan commented Oct 14, 2021

yeah, filed a bug internally(b/201798445) at that time: yeah it is a bug, would be fixed(I do not have an estimated date for fix though).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants