I/ViewRootImpl@2874d57[FlutterActivity]( 6445): ViewPostIme pointer 0
I/ViewRootImpl@2874d57[FlutterActivity]( 6445): ViewPostIme pointer 1
D/DeferrableSurface( 6445): surface closed, useCount=2 closed=true androidx.camera.core.SurfaceRequest$2@1322683
D/DeferrableSurface( 6445): surface closed, useCount=0 closed=true androidx.camera.core.processing.SurfaceEdge$SettableSurface@f4e42e7
D/DeferrableSurface( 6445): Surface terminated[total_surfaces=3, used_surfaces=3](androidx.camera.core.processing.SurfaceEdge$SettableSurface@f4e42e7}
D/DeferrableSurface( 6445): use count-1, useCount=1 closed=true androidx.camera.core.SurfaceRequest$2@1322683
W/ScreenFlashWrapper( 6445): completePendingScreenFlashClear: none pending!
D/ImageCapture( 6445): clearPipeline
D/DeferrableSurface( 6445): surface closed, useCount=1 closed=true androidx.camera.core.impl.ImmediateSurface@89116f5
D/DeferrableSurface( 6445): surface closed, useCount=1 closed=true androidx.camera.core.impl.ImmediateSurface@37e2fb
W/ScreenFlashWrapper( 6445): completePendingScreenFlashClear: none pending!
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Use cases [androidx.camera.core.Preview-49fb848b-cbfd-4216-98ad-f7ae040444b6173293866, androidx.camera.core.ImageCapture-cc823e5a-1fb0-4147-bd50-20202bef84c988950262, androidx.camera.core.ImageAnalysis-a04b7ebb-f021-4f85-a7b9-a4cc908729f3240108644] now DETACHED for camera
D/UseCaseAttachState( 6445): All use case: [] for camera: 0
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Resetting Capture Session
D/SyncCaptureSessionImpl( 6445): [androidx.camera.camera2.internal.SynchronizedCaptureSessionImpl@65088d] Session call close()
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Releasing session in state OPENED
D/Camera2CameraControlImp( 6445): setActive: isActive = false
D/UseCaseAttachState( 6445): Active and attached use case: [] for camera: 0
D/UseCaseAttachState( 6445): Active and attached use case: [] for camera: 0
D/VideoUsageControl( 6445): resetDirectly: mVideoUsage reset!
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Closing camera.
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Transitioning camera internal state: OPENED --> CLOSING
D/CameraStateRegistry( 6445): Recalculating open cameras:
D/CameraStateRegistry( 6445): Camera State
D/CameraStateRegistry( 6445): -------------------------------------------------------------------
D/CameraStateRegistry( 6445): Camera@b7b722b[id=3] UNKNOWN
D/CameraStateRegistry( 6445): Camera@e1f10be[id=0] CLOSING
D/CameraStateRegistry( 6445): Camera@9cb64e9[id=2] UNKNOWN
D/CameraStateRegistry( 6445): Camera@4ba7996[id=1] UNKNOWN
D/CameraStateRegistry( 6445): -------------------------------------------------------------------
D/CameraStateRegistry( 6445): Open count: 1 (Max allowed: 1)
D/CameraStateMachine( 6445): New public camera state CameraState{type=CLOSING, error=null} from CLOSING and null
D/CameraStateMachine( 6445): Publishing new public camera state CameraState{type=CLOSING, error=null}
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Resetting Capture Session
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Skipping Capture Session state check due to current camera state: CLOSING and previous session status: false
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Releasing session in state CLOSING
D/SyncCaptureSessionImpl( 6445): [androidx.camera.camera2.internal.SynchronizedCaptureSessionImpl@65088d] Session call super.close()
D/UseCaseAttachState( 6445): Active and attached use case: [] for camera: 0
D/CaptureSession( 6445): onSessionFinished()
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} closing camera
D/DynamicRangeResolver( 6445): Resolved dynamic range for use case androidx.camera.core.Preview-a6a63444-586c-43b0-8ae8-4f16c54c1fea to no compatible HDR dynamic ranges.
D/DynamicRangeResolver( 6445): DynamicRange@92951d6{encoding=UNSPECIFIED, bitDepth=0}
D/DynamicRangeResolver( 6445): ->
D/DynamicRangeResolver( 6445): DynamicRange@f8a61f1{encoding=SDR, bitDepth=8}
D/CameraQuirks( 6445): camera2 CameraQuirks =
D/CameraQuirks( 6445): camera2 CameraQuirks =
D/CameraQuirks( 6445): camera2 CameraQuirks =
D/DeferrableSurface( 6445): Surface created[total_surfaces=4, used_surfaces=3](androidx.camera.core.processing.SurfaceEdge$SettableSurface@b5aefdd}
D/DeferrableSurface( 6445): Surface created[total_surfaces=5, used_surfaces=3](androidx.camera.core.SurfaceRequest$2@99bacd9}
D/DeferrableSurface( 6445): New surface in use[total_surfaces=5, used_surfaces=4](androidx.camera.core.SurfaceRequest$2@99bacd9}
D/DeferrableSurface( 6445): use count+1, useCount=1 androidx.camera.core.SurfaceRequest$2@99bacd9
D/ImageCapture( 6445): createPipeline(cameraId: 0, streamSpec: StreamSpec{resolution=720x480, dynamicRange=DynamicRange@f8a61f1{encoding=SDR, bitDepth=8}, expectedFrameRateRange=[0, 0], implementationOptions=androidx.camera.camera2.impl.Camera2ImplConfig@7d8ceaa, zslDisabled=false})
D/DeferrableSurface( 6445): Surface created[total_surfaces=6, used_surfaces=4](androidx.camera.core.impl.ImmediateSurface@7c3fa9b}
D/InputTransport( 6445): Input channel destroyed: 'ClientS', fd=147
D/InputTransport( 6445): Input channel destroyed: 'ClientS', fd=150
D/InputTransport( 6445): Input channel destroyed: 'ClientS', fd=166
D/DeferrableSurface( 6445): Surface created[total_surfaces=7, used_surfaces=4](androidx.camera.core.impl.ImmediateSurface@4151e11}
D/InputTransport( 6445): Input channel destroyed: 'ClientS', fd=151
D/ImageCapture( 6445): onCameraControlReady
D/Camera2CameraControlImp( 6445): setFlashMode: mFlashMode = 2
I/BpBinder( 6445): onLastStrongRef automatically unlinking death recipients:
E/BufferQueueProducer( 6445): [ImageReader-720x480f22m5-6445-7](id:192d00000013,api:4,p:1278,c:6445) cancelBuffer: BufferQueue has been abandoned
E/BufferQueueProducer( 6445): [ImageReader-720x480f22m5-6445-7](id:192d00000013,api:4,p:1278,c:6445) cancelBuffer: BufferQueue has been abandoned
E/BufferQueueProducer( 6445): [ImageReader-720x480f22m5-6445-7](id:192d00000013,api:4,p:1278,c:6445) cancelBuffer: BufferQueue has been abandoned
E/BufferQueueProducer( 6445): [ImageReader-720x480f22m5-6445-7](id:192d00000013,api:4,p:1278,c:6445) cancelBuffer: BufferQueue has been abandoned
E/BufferQueueProducer( 6445): [ImageReader-720x480f22m5-6445-7](id:192d00000013,api:4,p:1278,c:6445) cancelBuffer: BufferQueue has been abandoned
I/CameraManagerGlobal( 6445): Camera 0 facing CAMERA_FACING_BACK state now CAMERA_STATE_IDLE for client io.flutter.plugins.cameraexample API Level 2 User Id 0
I/CameraManagerGlobal( 6445): postSingleUpdate device: camera id 0 status STATUS_PRESENT
I/CameraManagerGlobal( 6445): postSingleUpdate device: camera id 0 status STATUS_PRESENT
I/CameraManagerGlobal( 6445): postSingleUpdate device: camera id 0 status STATUS_PRESENT
I/CameraManagerGlobal( 6445): postSingleUpdate device: camera id 0 status STATUS_PRESENT
I/CameraManagerGlobal( 6445): Camera 0 facing CAMERA_FACING_BACK state now CAMERA_STATE_CLOSED for client io.flutter.plugins.cameraexample API Level 2 User Id 0
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Use case androidx.camera.core.ImageCapture-8ea579e6-b6af-4863-ac08-0b705c96e40f240199150 ACTIVE
D/UseCaseAttachState( 6445): Active and attached use case: [] for camera: 0
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Use case androidx.camera.core.Preview-a6a63444-586c-43b0-8ae8-4f16c54c1fea129815512 ACTIVE
D/UseCaseAttachState( 6445): Active and attached use case: [] for camera: 0
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Use case androidx.camera.core.ImageCapture-8ea579e6-b6af-4863-ac08-0b705c96e40f240199150 ACTIVE
D/UseCaseAttachState( 6445): Active and attached use case: [] for camera: 0
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Use case androidx.camera.core.ImageAnalysis-755a84a6-ecfe-48f4-9faa-504cb112d9709556252 INACTIVE
D/UseCaseAttachState( 6445): Active and attached use case: [] for camera: 0
D/UseCaseAttachState( 6445): Active and attached use case: [] for camera: 0
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Use cases [androidx.camera.core.Preview-a6a63444-586c-43b0-8ae8-4f16c54c1fea129815512, androidx.camera.core.ImageCapture-8ea579e6-b6af-4863-ac08-0b705c96e40f240199150, androidx.camera.core.ImageAnalysis-755a84a6-ecfe-48f4-9faa-504cb112d9709556252] now ATTACHED
D/Camera2CameraControlImp( 6445): setActive: isActive = true
D/UseCaseAttachState( 6445): All use case: [androidx.camera.core.ImageCapture-8ea579e6-b6af-4863-ac08-0b705c96e40f240199150, androidx.camera.core.Preview-a6a63444-586c-43b0-8ae8-4f16c54c1fea129815512, androidx.camera.core.ImageAnalysis-755a84a6-ecfe-48f4-9faa-504cb112d9709556252] for camera: 0
D/UseCaseAttachState( 6445): Active and attached use case: [androidx.camera.core.ImageCapture-8ea579e6-b6af-4863-ac08-0b705c96e40f240199150, androidx.camera.core.Preview-a6a63444-586c-43b0-8ae8-4f16c54c1fea129815512] for camera: 0
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Resetting Capture Session
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Skipping Capture Session state check due to current camera state: CLOSING and previous session status: false
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Releasing session in state CLOSING
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Transitioning camera internal state: CLOSING --> REOPENING
D/CameraStateRegistry( 6445): Recalculating open cameras:
D/CameraStateRegistry( 6445): Camera State
D/CameraStateRegistry( 6445): -------------------------------------------------------------------
D/CameraStateRegistry( 6445): Camera@b7b722b[id=3] UNKNOWN
D/CameraStateRegistry( 6445): Camera@e1f10be[id=0] OPENING
D/CameraStateRegistry( 6445): Camera@9cb64e9[id=2] UNKNOWN
D/CameraStateRegistry( 6445): Camera@4ba7996[id=1] UNKNOWN
D/CameraStateRegistry( 6445): -------------------------------------------------------------------
D/CameraStateRegistry( 6445): Open count: 1 (Max allowed: 1)
D/CameraStateMachine( 6445): New public camera state CameraState{type=OPENING, error=null} from OPENING and null
D/CameraStateMachine( 6445): Publishing new public camera state CameraState{type=OPENING, error=null}
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Use case androidx.camera.core.Preview-a6a63444-586c-43b0-8ae8-4f16c54c1fea129815512 ACTIVE
D/UseCaseAttachState( 6445): Active and attached use case: [androidx.camera.core.ImageCapture-8ea579e6-b6af-4863-ac08-0b705c96e40f240199150, androidx.camera.core.Preview-a6a63444-586c-43b0-8ae8-4f16c54c1fea129815512] for camera: 0
I/ViewRootImpl@2874d57[FlutterActivity]( 6445): onDisplayChanged oldDisplayState=2 newDisplayState=2
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Use case androidx.camera.core.ImageCapture-8ea579e6-b6af-4863-ac08-0b705c96e40f240199150 ACTIVE
D/UseCaseAttachState( 6445): Active and attached use case: [androidx.camera.core.ImageCapture-8ea579e6-b6af-4863-ac08-0b705c96e40f240199150, androidx.camera.core.Preview-a6a63444-586c-43b0-8ae8-4f16c54c1fea129815512] for camera: 0
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Use case androidx.camera.core.ImageAnalysis-755a84a6-ecfe-48f4-9faa-504cb112d9709556252 INACTIVE
D/UseCaseAttachState( 6445): Active and attached use case: [androidx.camera.core.ImageCapture-8ea579e6-b6af-4863-ac08-0b705c96e40f240199150, androidx.camera.core.Preview-a6a63444-586c-43b0-8ae8-4f16c54c1fea129815512] for camera: 0
D/DeferrableSurface( 6445): use count-1, useCount=0 closed=true androidx.camera.core.SurfaceRequest$2@1322683
D/DeferrableSurface( 6445): Surface no longer in use[total_surfaces=7, used_surfaces=3](androidx.camera.core.SurfaceRequest$2@1322683}
D/DeferrableSurface( 6445): Surface terminated[total_surfaces=6, used_surfaces=3](androidx.camera.core.SurfaceRequest$2@1322683}
D/DeferrableSurface( 6445): use count-1, useCount=0 closed=true androidx.camera.core.impl.ImmediateSurface@89116f5
D/DeferrableSurface( 6445): Surface no longer in use[total_surfaces=6, used_surfaces=2](androidx.camera.core.impl.ImmediateSurface@89116f5}
D/DeferrableSurface( 6445): Surface terminated[total_surfaces=5, used_surfaces=2](androidx.camera.core.impl.ImmediateSurface@89116f5}
D/DeferrableSurface( 6445): use count-1, useCount=0 closed=true androidx.camera.core.impl.ImmediateSurface@37e2fb
D/DeferrableSurface( 6445): Surface no longer in use[total_surfaces=5, used_surfaces=1](androidx.camera.core.impl.ImmediateSurface@37e2fb}
D/DeferrableSurface( 6445): Surface terminated[total_surfaces=4, used_surfaces=1](androidx.camera.core.impl.ImmediateSurface@37e2fb}
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} CameraDevice.onClosed()
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Attempting to open the camera.
D/CameraStateRegistry( 6445): tryOpenCamera(Camera@e1f10be[id=0]) [Available Cameras: 0, Already Open: true (Previous state: OPENING)] --> SUCCESS
D/CameraStateRegistry( 6445): Recalculating open cameras:
D/CameraStateRegistry( 6445): Camera State
D/CameraStateRegistry( 6445): -------------------------------------------------------------------
D/CameraStateRegistry( 6445): Camera@b7b722b[id=3] UNKNOWN
D/CameraStateRegistry( 6445): Camera@e1f10be[id=0] OPENING
D/CameraStateRegistry( 6445): Camera@9cb64e9[id=2] UNKNOWN
D/CameraStateRegistry( 6445): Camera@4ba7996[id=1] UNKNOWN
D/CameraStateRegistry( 6445): -------------------------------------------------------------------
D/CameraStateRegistry( 6445): Open count: 1 (Max allowed: 1)
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Opening camera.
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Transitioning camera internal state: REOPENING --> OPENING
D/CameraStateMachine( 6445): New public camera state CameraState{type=OPENING, error=null} from OPENING and null
D/UseCaseAttachState( 6445): All use case: [androidx.camera.core.ImageCapture-8ea579e6-b6af-4863-ac08-0b705c96e40f240199150, androidx.camera.core.Preview-a6a63444-586c-43b0-8ae8-4f16c54c1fea129815512, androidx.camera.core.ImageAnalysis-755a84a6-ecfe-48f4-9faa-504cb112d9709556252] for camera: 0
I/CameraManagerGlobal( 6445): Camera 0 facing CAMERA_FACING_BACK state now CAMERA_STATE_OPENING for client io.flutter.plugins.cameraexample API Level 2 User Id 0
I/CameraManagerGlobal( 6445): postSingleUpdate device: camera id 0 status STATUS_NOT_AVAILABLE
I/CameraManagerGlobal( 6445): postSingleUpdate device: camera id 0 status STATUS_NOT_AVAILABLE
I/CameraManagerGlobal( 6445): postSingleUpdate device: camera id 0 status STATUS_NOT_AVAILABLE
I/CameraManagerGlobal( 6445): postSingleUpdate device: camera id 0 status STATUS_NOT_AVAILABLE
I/CameraManagerGlobal( 6445): Camera 0 facing CAMERA_FACING_BACK state now CAMERA_STATE_OPEN for client io.flutter.plugins.cameraexample API Level 2 User Id 0
D/SyncCaptureSessionImpl( 6445): [androidx.camera.camera2.internal.SynchronizedCaptureSessionImpl@65088d] onClosed()
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} CameraDevice.onOpened()
D/Camera2CameraImpl( 6445): {Camera@e1f10be[id=0]} Transitioning camera internal state: OPENING --> OPENED
D/CameraStateRegistry( 6445): Recalculating open cameras:
D/CameraStateRegistry( 6445): Camera State
D/CameraStateRegistry( 6445): -------------------------------------------------------------------
D/CameraStateRegistry( 6445): Camera@b7b722b[id=3] UNKNOWN
D/CameraStateRegistry( 6445): Camera@e1f10be[id=0] OPEN
D/CameraStateRegistry( 6445): Camera@9cb64e9[id=2] UNKNOWN
D/CameraStateRegistry( 6445): Camera@4ba7996[id=1] UNKNOWN
D/CameraStateRegistry( 6445): -------------------------------------------------------------------
D/CameraStateRegistry( 6445): Open count: 1 (Max allowed: 1)
D/CameraStateMachine( 6445): New public camera state CameraState{type=OPEN, error=null} from OPEN and null
D/CameraStateMachine( 6445): Publishing new public camera state CameraState{type=OPEN, error=null}
D/UseCaseAttachState( 6445): All use case: [androidx.camera.core.ImageCapture-8ea579e6-b6af-4863-ac08-0b705c96e40f240199150, androidx.camera.core.Preview-a6a63444-586c-43b0-8ae8-4f16c54c1fea129815512, androidx.camera.core.ImageAnalysis-755a84a6-ecfe-48f4-9faa-504cb112d9709556252] for camera: 0
D/UseCaseAttachState( 6445): Active and attached use case: [androidx.camera.core.ImageCapture-8ea579e6-b6af-4863-ac08-0b705c96e40f240199150, androidx.camera.core.Preview-a6a63444-586c-43b0-8ae8-4f16c54c1fea129815512] for camera: 0
D/SyncCaptureSessionBase( 6445): [androidx.camera.camera2.internal.SynchronizedCaptureSessionImpl@e5b62b0] getSurface done with results: [Surface(name=null)/@0x5b7c50, Surface(name=null)/@0xa58b062, Surface(name=null)/@0xb4d25f3]
D/CaptureSession( 6445): Opening capture session.
D/Camera2CaptureRequestBuilder( 6445): template type = 1
D/SyncCaptureSessionImpl( 6445): [androidx.camera.camera2.internal.SynchronizedCaptureSessionImpl@e5b62b0] start openCaptureSession
D/DeferrableSurface( 6445): use count+1, useCount=2 androidx.camera.core.SurfaceRequest$2@99bacd9
D/DeferrableSurface( 6445): New surface in use[total_surfaces=4, used_surfaces=2](androidx.camera.core.impl.ImmediateSurface@7c3fa9b}
D/DeferrableSurface( 6445): use count+1, useCount=1 androidx.camera.core.impl.ImmediateSurface@7c3fa9b
D/DeferrableSurface( 6445): New surface in use[total_surfaces=4, used_surfaces=3](androidx.camera.core.impl.ImmediateSurface@4151e11}
D/DeferrableSurface( 6445): use count+1, useCount=1 androidx.camera.core.impl.ImmediateSurface@4151e11
D/SyncCaptureSessionImpl( 6445): [androidx.camera.camera2.internal.SynchronizedCaptureSessionImpl@e5b62b0] Session onConfigured()
D/CaptureSession( 6445): Attempting to send capture request onConfigured
D/CaptureSession( 6445): Issuing request for session.
D/Camera2CaptureRequestBuilder( 6445): createCaptureRequest
D/s.cameraexample( 6445): [is_supported_usage] IMPLEMENTATION_DEFINED must not have CPU usage, [0x20133]
D/CaptureSession( 6445): CameraCaptureSession.onConfigured() mState=OPENED
D/CaptureSession( 6445): CameraCaptureSession.onReady() OPENED
I/CameraManagerGlobal( 6445): Camera 0 facing CAMERA_FACING_BACK state now CAMERA_STATE_ACTIVE for client io.flutter.plugins.cameraexample API Level 2 User Id 0
D/s.cameraexample( 6445): [is_supported_usage] IMPLEMENTATION_DEFINED must not have CPU usage, [0x20133]
D/s.cameraexample( 6445): [is_supported_usage] IMPLEMENTATION_DEFINED must not have CPU usage, [0x20133]
D/s.cameraexample( 6445): [is_supported_usage] IMPLEMENTATION_DEFINED must not have CPU usage, [0x20133]
D/s.cameraexample( 6445): [is_supported_usage] IMPLEMENTATION_DEFINED must not have CPU usage, [0x20133]
I/ViewRootImpl@2874d57[FlutterActivity]( 6445): onDisplayChanged oldDisplayState=2 newDisplayState=2
D/s.cameraexample( 6445): [is_supported_usage] IMPLEMENTATION_DEFINED must not have CPU usage, [0x20133]
D/s.cameraexample( 6445): [is_supported_usage] IMPLEMENTATION_DEFINED must not have CPU usage, [0x20133]
What package does this bug report belong to?
camera
What target platforms are you seeing this bug on?
Android
Have you already upgraded your packages?
Yes
Dependency versions
pubspec.lock
Steps to reproduce
Tested on Samsung A55
Expected results
Cameras switching correctly
Actual results
Cameras not switching, always first
Code sample
Official example app
https://github.com/flutter/packages/tree/main/packages/camera/camera/example
Screenshots or Videos
Screenshots / Video demonstration
video_2025-03-11_11-32-12.mp4
video_2025-03-11_11-32-07.mp4
Logs
Logs select camera 2
Logs select camera 1
Flutter Doctor output
Doctor output