edufolly / flutter_mobile_vision

Flutter implementation of Google Mobile Vision.
MIT License
456 stars 168 forks source link

the program crashes, when click the screen or return #61

Closed answer0732 closed 3 years ago

answer0732 commented 3 years ago

can you give me some suggestions, thanks !

  _startOCRScan() async {
    List<OcrText> list = List();
    try {
      list = await FlutterMobileVision.read(
        waitTap: true,
        fps: 5,
        multiple: true,
      );
      for (OcrText text in list) {
        print('value is ${text.value}');
      }
    } catch (e) {
      print(e.toString());
    }    
  }

Here is debug info:

D/skia    (26352): onFlyCompress
D/skia    (26352): onFlyCompress
D/skia    (26352): onFlyCompress
D/Camera  (26352): app passed NULL surface
I/flutter (26352): value is B
I/flutter (26352): value is T
I/flutter (26352): value is U
I/flutter (26352): value is 6
I/flutter (26352): value is 8
I/flutter (26352): value is M
I/flutter (26352): value is G
I/flutter (26352): value is H
I/flutter (26352): value is N
D/AndroidRuntime(26352): Shutting down VM
E/AndroidRuntime(26352): FATAL EXCEPTION: main
E/AndroidRuntime(26352): Process: com.example.one, PID: 26352
E/AndroidRuntime(26352): java.lang.RuntimeException: Unable to destroy activity {com.example.one/io.github.edufolly.fluttermobilevision.ocr.OcrCaptureActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Thread$State java.lang.Thread.getState()' on a null object reference
E/AndroidRuntime(26352):        at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:5111)
E/AndroidRuntime(26352):        at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:5140)
E/AndroidRuntime(26352):        at android.app.servertransaction.DestroyActivityItem.execute(DestroyActivityItem.java:44)
E/AndroidRuntime(26352):        at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
E/AndroidRuntime(26352):        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
E/AndroidRuntime(26352):        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
E/AndroidRuntime(26352):        at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime(26352):        at android.os.Looper.loop(Looper.java:223)
E/AndroidRuntime(26352):        at android.app.ActivityThread.main(ActivityThread.java:7656)
E/AndroidRuntime(26352):        at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(26352):        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
E/AndroidRuntime(26352):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
E/AndroidRuntime(26352): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Thread$State java.lang.Thread.getState()' on a null object reference
E/AndroidRuntime(26352):        at io.github.edufolly.fluttermobilevision.ui.CameraSource$FrameProcessingRunnable.release(CameraSource.java:1142)
E/AndroidRuntime(26352):        at io.github.edufolly.fluttermobilevision.ui.CameraSource$FrameProcessingRunnable.access$900(CameraSource.java:1119)
E/AndroidRuntime(26352):        at io.github.edufolly.fluttermobilevision.ui.CameraSource.release(CameraSource.java:334)
E/AndroidRuntime(26352):        at io.github.edufolly.fluttermobilevision.ui.CameraSourcePreview.release(CameraSourcePreview.java:85)
E/AndroidRuntime(26352):        at io.github.edufolly.fluttermobilevision.util.AbstractCaptureActivity.onDestroy(AbstractCaptureActivity.java:124)
E/AndroidRuntime(26352):        at android.app.Activity.performDestroy(Activity.java:8245)
E/AndroidRuntime(26352):        at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1344)
E/AndroidRuntime(26352):        at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:5096)
E/AndroidRuntime(26352):        ... 11 more
I/Process (26352): Sending signal. PID: 26352 SIG: 9
Lost connection to device.
hadsluks commented 3 years ago

Same thing happens with me, when i click the button which has a callback calling the read function, the app crashes.

The log is as below: [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: PlatformException(error, Unable to find explicit activity class {com.peoplecard.app/io.github.edufolly.fluttermobilevision.ocr.OcrCaptureActivity}; have you declared this activity in your AndroidManifest.xml?, null, android.content.ActivityNotFoundException: Unable to find explicit activity class {com.peoplecard.app/io.github.edufolly.fluttermobilevision.ocr.OcrCaptureActivity}; have you declared this activity in your AndroidManifest.xml? E/flutter ( 2024): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2149) E/flutter ( 2024): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1785) E/flutter ( 2024): at android.app.Activity.startActivityForResult(Activity.java:5196) E/flutter ( 2024): at android.app.Activity.startActivityForResult(Activity.java:5154) E/flutter ( 2024): at io.github.edufolly.fluttermobilevision.FlutterMobileVisionDelegate.launchIntent(FlutterMobileVisionDelegate.java:232) E/flutter ( 2024): at io.github.edufolly.fluttermobilevision.FlutterMobileVisionDelegate.read(FlutterMobileVisionDelegate.java:122) E/flutter ( 2024): at io.github.edufolly.fluttermobilevision.FlutterMobileVisionPlugin.onMethodCall(FlutterMobileVisionPlugin.java:174) E/flutter ( 2024): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:233) E/flutter ( 2024): at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85) E/flutter ( 2024): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:692) E/flutter ( 2024): at android.os.MessageQueue.nativePollOnce(Native Method) E/flutter ( 2024): at android.os.MessageQueue.next(MessageQueue.java:343) E/flutter ( 2024): at android.os.Looper.loop(Looper.java:188) E/flutter ( 2024): at android.app.ActivityThread.main(ActivityThread.java:7617) E/flutter ( 2024): at java.lang.reflect.Method.invoke(Native Method) E/flutter ( 2024): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) E/flutter ( 2024): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941) E/flutter ( 2024): ) E/flutter ( 2024): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:582:7) E/flutter ( 2024): #1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:159:18) E/flutter ( 2024): <asynchronous suspension> E/flutter ( 2024): #2 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:332:12) E/flutter ( 2024): #3 FlutterMobileVision.read (package:flutter_mobile_vision/flutter_mobile_vision.dart:98:38) E/flutter ( 2024): #4 ScanCard.startScan (package:bcard/utilities/Constants/flutterMobileVision.dart:9:53) E/flutter ( 2024): #5 _ProfilePageDetailsState.build.<anonymous closure> (package:bcard/screens/ProfileTab/profilePageDetails.dart:320:61) E/flutter ( 2024): #6 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:183:24) E/flutter ( 2024): #7 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:598:11) E/flutter ( 2024): #8 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:287:5) E/flutter ( 2024): #9 BaseTapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:222:7) E/flutter ( 2024): #10 PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:476:9) E/flutter ( 2024): #11 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:77:12) E/flutter ( 2024): #12 PointerRouter._dispatchEventToRoutes.<anonymous closure> (package:flutter/src/gestures/pointer_router.dart:122:9) E/flutter ( 2024): #13 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:377:8) E/flutter ( 2024): #14 PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:120:18) E/flutter ( 2024): #15 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:106:7) E/flutter ( 2024): #16 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:358:19) E/flutter ( 2024): #17 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:338:22) E/flutter ( 2024): #18 RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:267:11) E/flutter ( 2024): #19 GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:295:7) E/flutter ( 2024): #20 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:240:7) E/flutter ( 2024): #21 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:213:7) E/flutter ( 2024): #22 _rootRunUnary (dart:async/zone.dart:1 I/Process ( 2024): Sending signal. PID: 2024 SIG: 9

edufolly commented 3 years ago

Add the activity to AndroidManifest.xml:

<activity android:name="io.github.edufolly.fluttermobilevision.ocr.OcrCaptureActivity" />

and don't forget to add camera permission:

<uses-feature android:name="android.hardware.camera" />

<uses-permission android:name="android.permission.CAMERA" />
hadsluks commented 3 years ago

Add the activity to AndroidManifest.xml:

<activity android:name="io.github.edufolly.fluttermobilevision.ocr.OcrCaptureActivity" />

and don't forget to add camera permission:

<uses-feature android:name="android.hardware.camera" />

<uses-permission android:name="android.permission.CAMERA" />

It worked...Thanks

answer0732 commented 3 years ago

Add the activity to AndroidManifest.xml:

<activity android:name="io.github.edufolly.fluttermobilevision.ocr.OcrCaptureActivity" />

and don't forget to add camera permission:

<uses-feature android:name="android.hardware.camera" />

<uses-permission android:name="android.permission.CAMERA" />

That's what I did, but it crashed