Apparence-io / CamerAwesome

📸 Embedding a camera experience within your own app shouldn't be that hard. A flutter plugin to integrate awesome Android / iOS camera experience.
https://ApparenceKit.dev
MIT License
952 stars 241 forks source link

Cannot take second photo on Samsung S8 #14

Closed orestesgaolin closed 4 years ago

orestesgaolin commented 4 years ago

Steps to Reproduce

  1. Follow steps in #13 (i.e. take picture with flashlight)
  2. Dismiss the image preview
  3. Disable flashlight
  4. Try to take another picture
  5. Nothing happens

Expected results

Should be able to take picture

Actual results

Nothing happens when tapping on shutter button

About your device

Brand Model OS
Samsung S8 Android 9

Logs

These are logs from #13 plus after that when trying to take a second picture

Launching lib/main.dart on SM G950F in profile mode...
✓ Built build/app/outputs/flutter-apk/app-profile.apk (10.0MB).
Installing build/app/outputs/flutter-apk/app.apk...
Connecting to VM Service at ws://127.0.0.1:53906/M7DOLnSG1Ss=/ws
D/EmergencyMode(10645): [EmergencyManager] android createPackageContext successful
D/InputTransport(10645): Input channel constructed: fd=89
D/ViewRootImpl@58a97b3[MainActivity](10645): setView = DecorView@7010117[MainActivity] TM=true MM=false
D/SurfaceView(10645): onWindowVisibilityChanged(0) true io.flutter.embedding.android.FlutterSurfaceView{dad5170 V.E...... ......I. 0,0-0,0} of ViewRootImpl@58a97b3[MainActivity]
D/ViewRootImpl@58a97b3[MainActivity](10645): dispatchAttachedToWindow
D/ViewRootImpl@58a97b3[MainActivity](10645): Relayout returned: old=[0,0][1080,2220] new=[0,0][1080,2220] result=0x7 surface={valid=true 487475417088} changed=true
I/OpenGLRenderer(10645): Initialized EGL, version 1.4
D/OpenGLRenderer(10645): Swap behavior 2
D/mali_winsys(10645): EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
D/OpenGLRenderer(10645): eglCreateWindowSurface = 0x7180d2ac00, 0x717fcc9010
D/SurfaceView(10645): show() Surface(name=SurfaceView - com.apparence.camerawesome_example/com.apparence.camerawesome_example.MainActivity@dad5170@0[10645])/@0x815de88 io.flutter.embedding.android.FlutterSurfaceView{dad5170 V.E...... ......ID 0,0-1080,2076}
D/SurfaceView(10645): surfaceCreated 1 #8 io.flutter.embedding.android.FlutterSurfaceView{dad5170 V.E...... ......ID 0,0-1080,2076}
D/mali_winsys(10645): EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
D/SurfaceView(10645): surfaceChanged (1080,2076) 1 #8 io.flutter.embedding.android.FlutterSurfaceView{dad5170 V.E...... ......ID 0,0-1080,2076}
D/com.apparence.camerawesome.CamerawesomePlugin(10645): _handleCheckPermissions:
D/ViewRootImpl@58a97b3[MainActivity](10645): Relayout returned: old=[0,0][1080,2220] new=[0,0][1080,2220] result=0x3 surface={valid=true 487475417088} changed=false
D/vndksupport(10645): Loading /vendor/lib64/hw/android.hardware.graphics.mapper@2.0-impl.so from current namespace instead of sphal namespace.
D/ViewRootImpl@58a97b3[MainActivity](10645): MSG_RESIZED: frame=Rect(0, 0 - 1080, 2220) ci=Rect(0, 72 - 0, 144) vi=Rect(0, 72 - 0, 144) or=1
D/ViewRootImpl@58a97b3[MainActivity](10645): MSG_WINDOW_FOCUS_CHANGED 1 1
D/InputMethodManager(10645): prepareNavigationBarInfo() DecorView@7010117[MainActivity]
D/InputMethodManager(10645): getNavigationBarColor() -855310
D/InputMethodManager(10645): prepareNavigationBarInfo() DecorView@7010117[MainActivity]
D/InputMethodManager(10645): getNavigationBarColor() -855310
V/InputMethodManager(10645): Starting input: tba=com.apparence.camerawesome_example ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
D/InputMethodManager(10645): startInputInner - Id : 0
I/InputMethodManager(10645): startInputInner - mService.startInputOrWindowGainedFocus
D/InputTransport(10645): Input channel constructed: fd=95
D/InputMethodManager(10645): prepareNavigationBarInfo() DecorView@7010117[MainActivity]
D/InputMethodManager(10645): getNavigationBarColor() -855310
V/InputMethodManager(10645): Starting input: tba=com.apparence.camerawesome_example ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
D/InputMethodManager(10645): startInputInner - Id : 0
D/ViewRootImpl@58a97b3[MainActivity](10645): MSG_WINDOW_FOCUS_CHANGED 0 1
D/InputMethodManager(10645): prepareNavigationBarInfo() DecorView@7010117[MainActivity]
D/InputMethodManager(10645): getNavigationBarColor() -855310
D/InputTransport(10645): Input channel destroyed: fd=95
I/flutter (10645): granted
D/ViewRootImpl@58a97b3[MainActivity](10645): setWindowStopped(false) old=false
D/com.apparence.camerawesome.CamerawesomePlugin(10645): _handleCheckPermissions:
D/ViewRootImpl@58a97b3[MainActivity](10645): MSG_WINDOW_FOCUS_CHANGED 1 1
I/flutter (10645): granted
D/InputMethodManager(10645): prepareNavigationBarInfo() DecorView@7010117[MainActivity]
D/InputMethodManager(10645): getNavigationBarColor() -855310
D/InputMethodManager(10645): prepareNavigationBarInfo() DecorView@7010117[MainActivity]
D/InputMethodManager(10645): getNavigationBarColor() -855310
V/InputMethodManager(10645): Starting input: tba=com.apparence.camerawesome_example ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
D/InputMethodManager(10645): startInputInner - Id : 0
I/InputMethodManager(10645): startInputInner - mService.startInputOrWindowGainedFocus
D/InputTransport(10645): Input channel constructed: fd=95
I/CameraManagerGlobal(10645): Connecting to camera service
D/VendorTagDescriptor(10645): addVendorDescriptor: vendor tag id 3854507339 added
D/SensorManager(10645): registerListener :: 6, LSM6DSL Acceleration Sensor, 200000, 0,
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 0
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 1
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 0
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 1
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 0
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 1
I/flutter (10645): ----------------------------------
I/flutter (10645): TAKE PHOTO CALLED
I/flutter (10645): ==> hastakePhoto : Instance of 'Future<bool>'
I/flutter (10645): ==> path : /data/user/0/com.apparence.camerawesome_example/cache/test/1598455776895.jpg
I/flutter (10645): ==> img.width : 4032
I/flutter (10645): ==> img.height : 3024
I/flutter (10645): ----------------------------------
I/        (10645): Increase max job count 60
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 0
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 1
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 0
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 1
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 0
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 1
D/ViewRootImpl@58a97b3[MainActivity](10645): MSG_WINDOW_FOCUS_CHANGED 0 1
D/InputMethodManager(10645): prepareNavigationBarInfo() DecorView@7010117[MainActivity]
D/InputMethodManager(10645): getNavigationBarColor() -855310
D/ViewRootImpl@58a97b3[MainActivity](10645): MSG_WINDOW_FOCUS_CHANGED 1 1
D/InputMethodManager(10645): prepareNavigationBarInfo() DecorView@7010117[MainActivity]
D/InputMethodManager(10645): getNavigationBarColor() -855310
D/ViewRootImpl@58a97b3[MainActivity](10645): setWindowStopped(false) old=false
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 0
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 1
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 0
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 1
D/SmartClipDataCropperImpl(10645): doExtractSmartClipData : Extraction start! reqId = 64  Cropped area = Rect(540, 1110 - 541, 1111)  Package = com.apparence.camerawesome_example
D/SmartClipDataCropperImpl(10645): addAppMetaTag : package name is com.apparence.camerawesome_example
D/SmartClipDataCropperImpl(10645): sendExtractionResultToSmartClipService : -- Extracted SmartClip data information --
D/SmartClipDataCropperImpl(10645): sendExtractionResultToSmartClipService : Request Id : 64
D/SmartClipDataCropperImpl(10645): sendExtractionResultToSmartClipService : Extraction mode : 1
D/SemSmartClipDataRepository(10645): ----- Start of SmartClip repository informations -----
D/SemSmartClipDataRepository(10645): ** Content type : image
D/SemSmartClipDataRepository(10645): ** Meta area rect : Rect(0, 0 - 0, 0)
D/SemSmartClipDataRepository(10645): ** Captured image file path : null
D/SemSmartClipDataRepository(10645): ----- End of SmartClip repository informations -----
D/SmartClipDataCropperImpl(10645): sendExtractionResultToSmartClipService : Elapsed = 10
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 0
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 1
D/SmartClipRemoteRequestDispatcher(10645): dispatchScrollableAreaInfo : windowRect = Rect(0, 0 - 1080, 2220)
D/SmartClipRemoteRequestDispatcher(10645): dispatchScrollableAreaInfo : Scrollable view count = 1
D/SmartClipRemoteRequestDispatcher(10645): dispatchScrollableAreaInfo : Unscrollable view count = 0
D/SmartClipRemoteRequestDispatcher(10645): dispatchScrollableAreaInfo : Pkg=com.apparence.camerawesome_example Activity=null
D/ViewRootImpl@58a97b3[MainActivity](10645): MSG_WINDOW_FOCUS_CHANGED 0 1
D/InputMethodManager(10645): prepareNavigationBarInfo() DecorView@7010117[MainActivity]
D/InputMethodManager(10645): getNavigationBarColor() -855310
D/ViewRootImpl@58a97b3[MainActivity](10645): MSG_WINDOW_FOCUS_CHANGED 1 1
D/InputMethodManager(10645): prepareNavigationBarInfo() DecorView@7010117[MainActivity]
D/InputMethodManager(10645): getNavigationBarColor() -855310
D/ViewRootImpl@58a97b3[MainActivity](10645): MSG_WINDOW_FOCUS_CHANGED 0 1
D/InputMethodManager(10645): prepareNavigationBarInfo() DecorView@7010117[MainActivity]
D/InputMethodManager(10645): getNavigationBarColor() -855310
D/ViewRootImpl@58a97b3[MainActivity](10645): MSG_WINDOW_FOCUS_CHANGED 1 1
D/InputMethodManager(10645): prepareNavigationBarInfo() DecorView@7010117[MainActivity]
D/InputMethodManager(10645): getNavigationBarColor() -855310
D/ViewRootImpl@58a97b3[MainActivity](10645): MSG_WINDOW_FOCUS_CHANGED 0 1
D/InputMethodManager(10645): prepareNavigationBarInfo() DecorView@7010117[MainActivity]
D/InputMethodManager(10645): getNavigationBarColor() -855310
D/SurfaceView(10645): onWindowVisibilityChanged(8) false io.flutter.embedding.android.FlutterSurfaceView{dad5170 V.E...... ........ 0,0-1080,2076} of ViewRootImpl@58a97b3[MainActivity]
D/SurfaceView(10645): show() Surface(name=SurfaceView - com.apparence.camerawesome_example/com.apparence.camerawesome_example.MainActivity@dad5170@0[10645])/@0x815de88 io.flutter.embedding.android.FlutterSurfaceView{dad5170 V.E...... ........ 0,0-1080,2076}
D/SurfaceView(10645): surfaceDestroyed callback.size 1 #2 io.flutter.embedding.android.FlutterSurfaceView{dad5170 V.E...... ........ 0,0-1080,2076}
D/SurfaceView(10645): destroy() Surface(name=SurfaceView - com.apparence.camerawesome_example/com.apparence.camerawesome_example.MainActivity@dad5170@0[10645])/@0x815de88 io.flutter.embedding.android.FlutterSurfaceView{dad5170 V.E...... ........ 0,0-1080,2076}
W/libEGL  (10645): EGLNativeWindowType 0x717fcc9010 disconnect failed
D/OpenGLRenderer(10645): eglDestroySurface = 0x7180d2ac00, 0x717fcc9000
D/ViewRootImpl@58a97b3[MainActivity](10645): Relayout returned: old=[0,0][1080,2220] new=[0,0][1080,2220] result=0x5 surface={valid=false 0} changed=true
D/InputTransport(10645): Input channel destroyed: fd=95
D/ViewRootImpl@58a97b3[MainActivity](10645): setWindowStopped(true) old=false
D/SurfaceView(10645): windowStopped(true) false io.flutter.embedding.android.FlutterSurfaceView{dad5170 V.E...... ........ 0,0-1080,2076} of ViewRootImpl@58a97b3[MainActivity]
D/ViewRootImpl@58a97b3[MainActivity](10645): Surface release. android.view.WindowManagerGlobal.setStoppedState:669 android.app.Activity.performStop:7650 android.app.ActivityThread.callActivityOnStop:4379 android.app.ActivityThread.performStopActivityInner:4357 android.app.ActivityThread.handleStopActivity:4432 android.app.servertransaction.StopActivityItem.execute:41 android.app.servertransaction.TransactionExecutor.executeLifecycleState:145 android.app.servertransaction.TransactionExecutor.execute:70
E/com.apparence.camerawesome.CameraStateManager(10645): close camera session: failed
E/CameraCaptureSession(10645): Session 0: Exception while stopping repeating:
E/CameraCaptureSession(10645): android.hardware.camera2.CameraAccessException: CAMERA_ERROR (3): The camera device has encountered a serious error
E/CameraCaptureSession(10645):  at android.hardware.camera2.impl.CameraDeviceImpl.checkIfCameraClosedOrInError(CameraDeviceImpl.java:2435)
E/CameraCaptureSession(10645):  at android.hardware.camera2.impl.CameraDeviceImpl.stopRepeating(CameraDeviceImpl.java:1126)
E/CameraCaptureSession(10645):  at android.hardware.camera2.impl.CameraCaptureSessionImpl.close(CameraCaptureSessionImpl.java:526)
E/CameraCaptureSession(10645):  at com.apparence.camerawesome.CameraPreview.dispose(CameraPreview.java:130)
E/CameraCaptureSession(10645):  at com.apparence.camerawesome.CameraStateManager.stopCamera(CameraStateManager.java:112)
E/CameraCaptureSession(10645):  at com.apparence.camerawesome.CameraStateManager.onError(CameraStateManager.java:154)
E/CameraCaptureSession(10645):  at android.hardware.camera2.impl.CameraDeviceImpl$CameraDeviceCallbacks.notifyError(CameraDeviceImpl.java:1929)
E/CameraCaptureSession(10645):  at android.hardware.camera2.impl.CameraDeviceImpl$CameraDeviceCallbacks.lambda$Sm85frAzwGZVMAK-NE_gwckYXVQ(Unknown Source:0)
E/CameraCaptureSession(10645):  at android.hardware.camera2.impl.-$$Lambda$CameraDeviceImpl$CameraDeviceCallbacks$Sm85frAzwGZVMAK-NE_gwckYXVQ.accept(Unknown Source:8)
E/CameraCaptureSession(10645):  at com.android.internal.util.function.pooled.PooledLambdaImpl.doInvoke(PooledLambdaImpl.java:258)
E/CameraCaptureSession(10645):  at com.android.internal.util.function.pooled.PooledLambdaImpl.invoke(PooledLambdaImpl.java:182)
E/CameraCaptureSession(10645):  at com.android.internal.util.function.pooled.OmniFunction.run(OmniFunction.java:77)
E/CameraCaptureSession(10645):  at android.os.Handler.handleCallback(Handler.java:873)
E/CameraCaptureSession(10645):  at android.os.Handler.dispatchMessage(Handler.java:99)
E/CameraCaptureSession(10645):  at android.os.Looper.loop(Looper.java:214)
E/CameraCaptureSession(10645):  at android.app.ActivityThread.main(ActivityThread.java:7050)
E/CameraCaptureSession(10645):  at java.lang.reflect.Method.invoke(Native Method)
E/CameraCaptureSession(10645):  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
E/CameraCaptureSession(10645):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
F/OIC_SRM_DOXM(11831): UpdatePersistentStorage failed!
D/SurfaceView(10645): onWindowVisibilityChanged(4) false io.flutter.embedding.android.FlutterSurfaceView{dad5170 V.E...... ........ 0,0-1080,2076} of ViewRootImpl@58a97b3[MainActivity]
D/ViewRootImpl@58a97b3[MainActivity](10645): Relayout returned: old=[0,0][1080,2220] new=[0,0][1080,2220] result=0x1 surface={valid=false 0} changed=false
D/ViewRootImpl@58a97b3[MainActivity](10645): setWindowStopped(false) old=true
D/SurfaceView(10645): windowStopped(false) false io.flutter.embedding.android.FlutterSurfaceView{dad5170 V.E...... ........ 0,0-1080,2076} of ViewRootImpl@58a97b3[MainActivity]
D/ViewRootImpl@58a97b3[MainActivity](10645): setWindowStopped(false) old=false
D/SurfaceView(10645): onWindowVisibilityChanged(0) true io.flutter.embedding.android.FlutterSurfaceView{dad5170 V.E...... ........ 0,0-1080,2076} of ViewRootImpl@58a97b3[MainActivity]
D/ViewRootImpl@58a97b3[MainActivity](10645): Relayout returned: old=[0,0][1080,2220] new=[0,0][1080,2220] result=0x7 surface={valid=true 487475933184} changed=true
I/OpenGLRenderer(10645): Initialized EGL, version 1.4
D/OpenGLRenderer(10645): Swap behavior 2
D/SurfaceView(10645): show() Surface(name=SurfaceView - com.apparence.camerawesome_example/com.apparence.camerawesome_example.MainActivity@dad5170@1[10645])/@0x45b4500 io.flutter.embedding.android.FlutterSurfaceView{dad5170 V.E...... ........ 0,0-1080,2076}
D/SurfaceView(10645): surfaceCreated 1 #8 io.flutter.embedding.android.FlutterSurfaceView{dad5170 V.E...... ........ 0,0-1080,2076}
D/mali_winsys(10645): EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
D/OpenGLRenderer(10645): eglCreateWindowSurface = 0x71970fc080, 0x717fd47010
D/mali_winsys(10645): EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
D/SurfaceView(10645): surfaceChanged (1080,2076) 1 #8 io.flutter.embedding.android.FlutterSurfaceView{dad5170 V.E...... ........ 0,0-1080,2076}
D/ViewRootImpl@58a97b3[MainActivity](10645): MSG_WINDOW_FOCUS_CHANGED 1 1
D/InputMethodManager(10645): prepareNavigationBarInfo() DecorView@7010117[MainActivity]
D/InputMethodManager(10645): getNavigationBarColor() -855310
D/InputMethodManager(10645): prepareNavigationBarInfo() DecorView@7010117[MainActivity]
D/InputMethodManager(10645): getNavigationBarColor() -855310
V/InputMethodManager(10645): Starting input: tba=com.apparence.camerawesome_example ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
D/InputMethodManager(10645): startInputInner - Id : 0
I/InputMethodManager(10645): startInputInner - mService.startInputOrWindowGainedFocus
D/InputTransport(10645): Input channel constructed: fd=97
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 0
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 1
E/MethodChannel#camerawesome(10645): Failed to handle method call
E/MethodChannel#camerawesome(10645): java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.ImageReader.setOnImageAvailableListener(android.media.ImageReader$OnImageAvailableListener, android.os.Handler)' on a null object reference
E/MethodChannel#camerawesome(10645):    at com.apparence.camerawesome.CameraPicture.takePicture(CameraPicture.java:97)
E/MethodChannel#camerawesome(10645):    at com.apparence.camerawesome.CamerawesomePlugin._handleTakePhoto(CamerawesomePlugin.java:341)
E/MethodChannel#camerawesome(10645):    at com.apparence.camerawesome.CamerawesomePlugin.onMethodCall(CamerawesomePlugin.java:136)
E/MethodChannel#camerawesome(10645):    at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:230)
E/MethodChannel#camerawesome(10645):    at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
E/MethodChannel#camerawesome(10645):    at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:692)
E/MethodChannel#camerawesome(10645):    at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#camerawesome(10645):    at android.os.MessageQueue.next(MessageQueue.java:326)
E/MethodChannel#camerawesome(10645):    at android.os.Looper.loop(Looper.java:181)
E/MethodChannel#camerawesome(10645):    at android.app.ActivityThread.main(ActivityThread.java:7050)
E/MethodChannel#camerawesome(10645):    at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#camerawesome(10645):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
E/MethodChannel#camerawesome(10645):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
E/flutter (10645): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: PlatformException(error, Attempt to invoke virtual method 'void android.media.ImageReader.setOnImageAvailableListener(android.media.ImageReader$OnImageAvailableListener, android.os.Handler)' on a null object reference, null)
E/flutter (10645): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:572)
E/flutter (10645): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:161)
E/flutter (10645): <asynchronous suspension>
E/flutter (10645): #2      PictureController.takePicture (package:camerawesome/picture_controller.dart:6)
E/flutter (10645): <asynchronous suspension>
E/flutter (10645): #3      _MyAppState._buildBottomBar.<anonymous closure> (package:camerawesome_example/main.dart:326)
E/flutter (10645): <asynchronous suspension>
E/flutter (10645):
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 0
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 1
E/MethodChannel#camerawesome(10645): Failed to handle method call
E/MethodChannel#camerawesome(10645): java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.ImageReader.setOnImageAvailableListener(android.media.ImageReader$OnImageAvailableListener, android.os.Handler)' on a null object reference
E/MethodChannel#camerawesome(10645):    at com.apparence.camerawesome.CameraPicture.takePicture(CameraPicture.java:97)
E/MethodChannel#camerawesome(10645):    at com.apparence.camerawesome.CamerawesomePlugin._handleTakePhoto(CamerawesomePlugin.java:341)
E/MethodChannel#camerawesome(10645):    at com.apparence.camerawesome.CamerawesomePlugin.onMethodCall(CamerawesomePlugin.java:136)
E/MethodChannel#camerawesome(10645):    at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:230)
E/MethodChannel#camerawesome(10645):    at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
E/MethodChannel#camerawesome(10645):    at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:692)
E/MethodChannel#camerawesome(10645):    at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#camerawesome(10645):    at android.os.MessageQueue.next(MessageQueue.java:326)
E/MethodChannel#camerawesome(10645):    at android.os.Looper.loop(Looper.java:181)
E/MethodChannel#camerawesome(10645):    at android.app.ActivityThread.main(ActivityThread.java:7050)
E/MethodChannel#camerawesome(10645):    at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#camerawesome(10645):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
E/MethodChannel#camerawesome(10645):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
E/flutter (10645): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: PlatformException(error, Attempt to invoke virtual method 'void android.media.ImageReader.setOnImageAvailableListener(android.media.ImageReader$OnImageAvailableListener, android.os.Handler)' on a null object reference, null)
E/flutter (10645): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:572)
E/flutter (10645): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:161)
E/flutter (10645): <asynchronous suspension>
E/flutter (10645): #2      PictureController.takePicture (package:camerawesome/picture_controller.dart:6)
E/flutter (10645): <asynchronous suspension>
E/flutter (10645): #3      _MyAppState._buildBottomBar.<anonymous closure> (package:camerawesome_example/main.dart:326)
E/flutter (10645): <asynchronous suspension>
E/flutter (10645):
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 0
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 1
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 0
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 1
E/MethodChannel#camerawesome(10645): Failed to handle method call
E/MethodChannel#camerawesome(10645): java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.ImageReader.setOnImageAvailableListener(android.media.ImageReader$OnImageAvailableListener, android.os.Handler)' on a null object reference
E/MethodChannel#camerawesome(10645):    at com.apparence.camerawesome.CameraPicture.takePicture(CameraPicture.java:97)
E/MethodChannel#camerawesome(10645):    at com.apparence.camerawesome.CamerawesomePlugin._handleTakePhoto(CamerawesomePlugin.java:341)
E/MethodChannel#camerawesome(10645):    at com.apparence.camerawesome.CamerawesomePlugin.onMethodCall(CamerawesomePlugin.java:136)
E/MethodChannel#camerawesome(10645):    at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:230)
E/MethodChannel#camerawesome(10645):    at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
E/MethodChannel#camerawesome(10645):    at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:692)
E/MethodChannel#camerawesome(10645):    at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#camerawesome(10645):    at android.os.MessageQueue.next(MessageQueue.java:326)
E/MethodChannel#camerawesome(10645):    at android.os.Looper.loop(Looper.java:181)
E/MethodChannel#camerawesome(10645):    at android.app.ActivityThread.main(ActivityThread.java:7050)
E/MethodChannel#camerawesome(10645):    at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#camerawesome(10645):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
E/MethodChannel#camerawesome(10645):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
E/flutter (10645): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: PlatformException(error, Attempt to invoke virtual method 'void android.media.ImageReader.setOnImageAvailableListener(android.media.ImageReader$OnImageAvailableListener, android.os.Handler)' on a null object reference, null)
E/flutter (10645): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:572)
E/flutter (10645): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:161)
E/flutter (10645): <asynchronous suspension>
E/flutter (10645): #2      PictureController.takePicture (package:camerawesome/picture_controller.dart:6)
E/flutter (10645): <asynchronous suspension>
E/flutter (10645): #3      _MyAppState._buildBottomBar.<anonymous closure> (package:camerawesome_example/main.dart:326)
E/flutter (10645): <asynchronous suspension>
E/flutter (10645):
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 0
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 1
E/MethodChannel#camerawesome(10645): Failed to handle method call
E/MethodChannel#camerawesome(10645): java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.ImageReader.setOnImageAvailableListener(android.media.ImageReader$OnImageAvailableListener, android.os.Handler)' on a null object reference
E/MethodChannel#camerawesome(10645):    at com.apparence.camerawesome.CameraPicture.takePicture(CameraPicture.java:97)
E/MethodChannel#camerawesome(10645):    at com.apparence.camerawesome.CamerawesomePlugin._handleTakePhoto(CamerawesomePlugin.java:341)
E/MethodChannel#camerawesome(10645):    at com.apparence.camerawesome.CamerawesomePlugin.onMethodCall(CamerawesomePlugin.java:136)
E/MethodChannel#camerawesome(10645):    at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:230)
E/MethodChannel#camerawesome(10645):    at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
E/MethodChannel#camerawesome(10645):    at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:692)
E/MethodChannel#camerawesome(10645):    at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#camerawesome(10645):    at android.os.MessageQueue.next(MessageQueue.java:326)
E/MethodChannel#camerawesome(10645):    at android.os.Looper.loop(Looper.java:181)
E/MethodChannel#camerawesome(10645):    at android.app.ActivityThread.main(ActivityThread.java:7050)
E/MethodChannel#camerawesome(10645):    at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#camerawesome(10645):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
E/MethodChannel#camerawesome(10645):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
E/flutter (10645): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: PlatformException(error, Attempt to invoke virtual method 'void android.media.ImageReader.setOnImageAvailableListener(android.media.ImageReader$OnImageAvailableListener, android.os.Handler)' on a null object reference, null)
E/flutter (10645): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:572)
E/flutter (10645): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:161)
E/flutter (10645): <asynchronous suspension>
E/flutter (10645): #2      PictureController.takePicture (package:camerawesome/picture_controller.dart:6)
E/flutter (10645): <asynchronous suspension>
E/flutter (10645): #3      _MyAppState._buildBottomBar.<anonymous closure> (package:camerawesome_example/main.dart:326)
E/flutter (10645): <asynchronous suspension>
E/flutter (10645):
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 0
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 1
E/MethodChannel#camerawesome(10645): Failed to handle method call
E/MethodChannel#camerawesome(10645): java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.ImageReader.setOnImageAvailableListener(android.media.ImageReader$OnImageAvailableListener, android.os.Handler)' on a null object reference
E/MethodChannel#camerawesome(10645):    at com.apparence.camerawesome.CameraPicture.takePicture(CameraPicture.java:97)
E/MethodChannel#camerawesome(10645):    at com.apparence.camerawesome.CamerawesomePlugin._handleTakePhoto(CamerawesomePlugin.java:341)
E/MethodChannel#camerawesome(10645):    at com.apparence.camerawesome.CamerawesomePlugin.onMethodCall(CamerawesomePlugin.java:136)
E/MethodChannel#camerawesome(10645):    at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:230)
E/MethodChannel#camerawesome(10645):    at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
E/MethodChannel#camerawesome(10645):    at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:692)
E/MethodChannel#camerawesome(10645):    at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#camerawesome(10645):    at android.os.MessageQueue.next(MessageQueue.java:326)
E/MethodChannel#camerawesome(10645):    at android.os.Looper.loop(Looper.java:181)
E/MethodChannel#camerawesome(10645):    at android.app.ActivityThread.main(ActivityThread.java:7050)
E/MethodChannel#camerawesome(10645):    at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#camerawesome(10645):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
E/MethodChannel#camerawesome(10645):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
E/flutter (10645): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: PlatformException(error, Attempt to invoke virtual method 'void android.media.ImageReader.setOnImageAvailableListener(android.media.ImageReader$OnImageAvailableListener, android.os.Handler)' on a null object reference, null)
E/flutter (10645): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:572)
E/flutter (10645): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:161)
E/flutter (10645): <asynchronous suspension>
E/flutter (10645): #2      PictureController.takePicture (package:camerawesome/picture_controller.dart:6)
E/flutter (10645): <asynchronous suspension>
E/flutter (10645): #3      _MyAppState._buildBottomBar.<anonymous closure> (package:camerawesome_example/main.dart:326)
E/flutter (10645): <asynchronous suspension>
E/flutter (10645):
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 0
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 1
E/MethodChannel#camerawesome(10645): Failed to handle method call
E/MethodChannel#camerawesome(10645): java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.ImageReader.setOnImageAvailableListener(android.media.ImageReader$OnImageAvailableListener, android.os.Handler)' on a null object reference
E/MethodChannel#camerawesome(10645):    at com.apparence.camerawesome.CameraPicture.takePicture(CameraPicture.java:97)
E/MethodChannel#camerawesome(10645):    at com.apparence.camerawesome.CamerawesomePlugin._handleTakePhoto(CamerawesomePlugin.java:341)
E/MethodChannel#camerawesome(10645):    at com.apparence.camerawesome.CamerawesomePlugin.onMethodCall(CamerawesomePlugin.java:136)
E/MethodChannel#camerawesome(10645):    at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:230)
E/MethodChannel#camerawesome(10645):    at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
E/MethodChannel#camerawesome(10645):    at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:692)
E/MethodChannel#camerawesome(10645):    at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#camerawesome(10645):    at android.os.MessageQueue.next(MessageQueue.java:326)
E/MethodChannel#camerawesome(10645):    at android.os.Looper.loop(Looper.java:181)
E/MethodChannel#camerawesome(10645):    at android.app.ActivityThread.main(ActivityThread.java:7050)
E/MethodChannel#camerawesome(10645):    at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#camerawesome(10645):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
E/MethodChannel#camerawesome(10645):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
E/flutter (10645): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: PlatformException(error, Attempt to invoke virtual method 'void android.media.ImageReader.setOnImageAvailableListener(android.media.ImageReader$OnImageAvailableListener, android.os.Handler)' on a null object reference, null)
E/flutter (10645): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:572)
E/flutter (10645): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:161)
E/flutter (10645): <asynchronous suspension>
E/flutter (10645): #2      PictureController.takePicture (package:camerawesome/picture_controller.dart:6)
E/flutter (10645): <asynchronous suspension>
E/flutter (10645): #3      _MyAppState._buildBottomBar.<anonymous closure> (package:camerawesome_example/main.dart:326)
E/flutter (10645): <asynchronous suspension>
E/flutter (10645):
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 0
D/ViewRootImpl@58a97b3[MainActivity](10645): ViewPostIme pointer 1
E/MethodChannel#camerawesome(10645): Failed to handle method call
E/MethodChannel#camerawesome(10645): java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.ImageReader.setOnImageAvailableListener(android.media.ImageReader$OnImageAvailableListener, android.os.Handler)' on a null object reference
E/MethodChannel#camerawesome(10645):    at com.apparence.camerawesome.CameraPicture.takePicture(CameraPicture.java:97)
E/MethodChannel#camerawesome(10645):    at com.apparence.camerawesome.CamerawesomePlugin._handleTakePhoto(CamerawesomePlugin.java:341)
E/MethodChannel#camerawesome(10645):    at com.apparence.camerawesome.CamerawesomePlugin.onMethodCall(CamerawesomePlugin.java:136)
E/MethodChannel#camerawesome(10645):    at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:230)
E/MethodChannel#camerawesome(10645):    at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
E/MethodChannel#camerawesome(10645):    at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:692)
E/MethodChannel#camerawesome(10645):    at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#camerawesome(10645):    at android.os.MessageQueue.next(MessageQueue.java:326)
E/MethodChannel#camerawesome(10645):    at android.os.Looper.loop(Looper.java:181)
E/MethodChannel#camerawesome(10645):    at android.app.ActivityThread.main(ActivityThread.java:7050)
E/MethodChannel#camerawesome(10645):    at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#camerawesome(10645):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
E/MethodChannel#camerawesome(10645):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
E/flutter (10645): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: PlatformException(error, Attempt to invoke virtual method 'void android.media.ImageReader.setOnImageAvailableListener(android.media.ImageReader$OnImageAvailableListener, android.os.Handler)' on a null object reference, null)
E/flutter (10645): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:572)
E/flutter (10645): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:161)
E/flutter (10645): <asynchronous suspension>
E/flutter (10645): #2      PictureController.takePicture (package:camerawesome/picture_controller.dart:6)
E/flutter (10645): <asynchronous suspension>
E/flutter (10645): #3      _MyAppState._buildBottomBar.<anonymous closure> (package:camerawesome_example/main.dart:326)
E/flutter (10645): <asynchronous suspension>
E/flutter (10645):
g-apparence commented 4 years ago

Okay It seems that the preview encountered an error and we should restart it.

Session 0: Exception while stopping repeating: E/CameraCaptureSession(10645): android.hardware.camera2.CameraAccessException: CAMERA_ERROR (3): The camera device has encountered a serious error E/CameraCaptureSession(10645): at android.hardware.camera2.impl.CameraDeviceImpl.checkIfCameraClosedOrInError(CameraDeviceImpl.java:2435) E/CameraCaptureSession(10645): at android.hardware.camera2.impl.CameraDeviceImpl.stopRepeating(CameraDeviceImpl.java:1126) E/CameraCaptureSession(10645): at android.hardware.camera2.impl.CameraCaptureSessionImpl.close(CameraCaptureSessionImpl.java:526) E/CameraCaptureSession(10645): at com.apparence.camerawesome.CameraPreview.dispose(CameraPreview.java:130)

trying to reproduce it. Do you dismiss the preview by putting app on background or any other way ? Then adding a fix that recreate the cameraSession when it encounters an error.

g-apparence commented 4 years ago

Tested on