hojte / Bachelor2021

Bachelor project spring 2021
0 stars 0 forks source link

CameraController null / Camera Frozen #71

Open ghost opened 3 years ago

ghost commented 3 years ago

Hvis man går ud og ind af appen bliver CameraController null, og man skal skifte camera for at få det til at virke. Gør så hvis Camera klassen er mountet og controller == null, så lav ny controller.

ghost commented 3 years ago

Dette sker når appen er i baggrunden:

E/CameraCaptureSession(27837): android.hardware.camera2.CameraAccessException: CAMERA_ERROR (3): The camera device has encountered a serious error
E/CameraCaptureSession(27837):  at android.hardware.camera2.impl.CameraDeviceImpl.checkIfCameraClosedOrInError(CameraDeviceImpl.java:2294)
E/CameraCaptureSession(27837):  at android.hardware.camera2.impl.CameraDeviceImpl.stopRepeating(CameraDeviceImpl.java:1274)
E/CameraCaptureSession(27837):  at android.hardware.camera2.impl.CameraCaptureSessionImpl.close(CameraCaptureSessionImpl.java:592)
E/CameraCaptureSession(27837):  at io.flutter.plugins.camera.Camera.closeCaptureSession(Camera.java:1147)
E/CameraCaptureSession(27837):  at io.flutter.plugins.camera.Camera.close(Camera.java:1153)
E/CameraCaptureSession(27837):  at io.flutter.plugins.camera.Camera$1.onError(Camera.java:247)
E/CameraCaptureSession(27837):  at android.hardware.camera2.impl.CameraDeviceImpl.notifyError(CameraDeviceImpl.java:1692)
E/CameraCaptureSession(27837):  at android.hardware.camera2.impl.CameraDeviceImpl.lambda$oDs27OTfKFfK18rUW2nQxxkPdV0(Unknown Source:0)
E/CameraCaptureSession(27837):  at android.hardware.camera2.impl.-$$Lambda$CameraDeviceImpl$oDs27OTfKFfK18rUW2nQxxkPdV0.accept(Unknown Source:8)
E/CameraCaptureSession(27837):  at com.android.internal.util.function.pooled.PooledLambdaImpl.doInvoke(PooledLambdaImpl.java:278)
E/CameraCaptureSession(27837):  at com.android.internal.util.function.pooled.PooledLambdaImpl.invoke(PooledLambdaImpl.java:201)
E/CameraCaptureSession(27837):  at com.android.internal.util.function.pooled.OmniFunction.run(OmniFunction.java:97)
E/CameraCaptureSession(27837):  at android.os.Handler.handleCallback(Handler.java:938)
E/CameraCaptureSession(27837):  at android.os.Handler.dispatchMessage(Handler.java:99)
E/CameraCaptureSession(27837):  at android.os.Looper.loop(Looper.java:233)
E/CameraCaptureSession(27837):  at android.app.ActivityThread.main(ActivityThread.java:8010)
E/CameraCaptureSession(27837):  at java.lang.reflect.Method.invoke(Native Method)
E/CameraCaptureSession(27837):  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:631)
E/CameraCaptureSession(27837):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:978)```

Når man går ind i appen er Preview frosset, man kan trykke på knapperne, ved tryk på blitz:

E/MethodChannel#plugins.flutter.io/camera(27837): Failed to handle method call
E/MethodChannel#plugins.flutter.io/camera(27837): java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.hardware.camera2.CameraDevice.getId()' on a null object reference
E/MethodChannel#plugins.flutter.io/camera(27837):   at io.flutter.plugins.camera.Camera.setFlashMode(Camera.java:707)
E/MethodChannel#plugins.flutter.io/camera(27837):   at io.flutter.plugins.camera.MethodCallHandlerImpl.onMethodCall(MethodCallHandlerImpl.java:142)
E/MethodChannel#plugins.flutter.io/camera(27837):   at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:233)
E/MethodChannel#plugins.flutter.io/camera(27837):   at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
E/MethodChannel#plugins.flutter.io/camera(27837):   at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:818)
E/MethodChannel#plugins.flutter.io/camera(27837):   at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#plugins.flutter.io/camera(27837):   at android.os.MessageQueue.next(MessageQueue.java:335)
E/MethodChannel#plugins.flutter.io/camera(27837):   at android.os.Looper.loop(Looper.java:183)
E/MethodChannel#plugins.flutter.io/camera(27837):   at android.app.ActivityThread.main(ActivityThread.java:8010)
E/MethodChannel#plugins.flutter.io/camera(27837):   at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#plugins.flutter.io/camera(27837):   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:631)
E/MethodChannel#plugins.flutter.io/camera(27837):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:978)
E/flutter (27837): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: CameraException(error, Attempt to invoke virtual method 'java.lang.String android.hardware.camera2.CameraDevice.getId()' on a null object reference)
E/flutter (27837): #0      CameraController.setFlashMode (package:camera/src/camera_controller.dart:571:7)
E/flutter (27837): <asynchronous suspension>
E/flutter (27837): #1      _CameraState.toggleFlash.<anonymous closure> (package:ituvidit/camera.dart)
E/flutter (27837): <asynchronous suspension>
E/flutter (27837): 

======== Exception caught by gesture ===============================================================
The following ArgumentError was thrown while handling a gesture:
Invalid argument (onError): Error handler must accept one Object or one Object and a StackTrace as arguments, and return a valid result: Closure: () => Null

When the exception was thrown, this was the stack: 
#2      _CameraState.toggleFlash (package:ituvidit/camera.dart:351:10)
#3      _CameraState.build.<anonymous closure> (package:ituvidit/camera.dart:430:36)
#4      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:991:20)
#5      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24)
#6      TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:607:11)
...
Handler: "onTap"
Recognizer: TapGestureRecognizer#fcbb5
  debugOwner: GestureDetector
  state: possible
  won arena
  finalPosition: Offset(347.2, 203.5)
  finalLocalPosition: Offset(19.2, 34.9)
  button: 1
  sent tap down
====================================================================================================
D/ViewRootImpl[MainActivity](27837): windowFocusChanged hasFocus=false inTouchMode=true
ghost commented 3 years ago

Not fixed maybe? https://github.com/flutter/flutter/issues/61544