contactlutforrahman / flutter_qr_bar_scanner

A full screen mobile scanner for scanning QR Code and Bar Code.
MIT License
33 stars 66 forks source link

One time app shutdown after granting permission to camera #10

Closed holubond closed 3 years ago

holubond commented 4 years ago

Hi, I have found the following issue (hopefully it is not caused by my incompetence, in that case, I'm sorry for bothering you): When I access a screen with the scanner for the first time, a permission request pops up. After confirming, the app crashes. However, when I start the app for the second time, everything works well.

Here are logs that appeared after entering the screen before granting the permission: W/IInputConnectionWrapper(22220): getTextBeforeCursor on inactive InputConnection W/IInputConnectionWrapper(22220): getSelectedText on inactive InputConnection W/IInputConnectionWrapper(22220): getTextAfterCursor on inactive InputConnection W/IInputConnectionWrapper(22220): beginBatchEdit on inactive InputConnection W/IInputConnectionWrapper(22220): endBatchEdit on inactive InputConnection I/cgl.fqs.QrReader(22220): Using new camera API. I/cgl.fqs.QrDetector(22220): Making detector2 for formats: 256 W/DynamiteModule(22220): Local module descriptor class for com.google.android.gms.vision.dynamite.barcode not found. I/DynamiteModule(22220): Considering local module com.google.android.gms.vision.dynamite.barcode:0 and remote module com.google.android.gms.vision.dynamite.barcode:0 D/BarcodeNativeHandle(22220): Cannot load feature, fall back to load whole module. W/DynamiteModule(22220): Local module descriptor class for com.google.android.gms.vision.dynamite not found. W/b.disciplinova(22220): Unsupported class loader W/b.disciplinova(22220): Skipping duplicate class check due to unsupported classloader I/DynamiteModule(22220): Considering local module com.google.android.gms.vision.dynamite:0 and remote module com.google.android.gms.vision.dynamite:2703 I/DynamiteModule(22220): Selected remote version of com.google.android.gms.vision.dynamite, version >= 2703 V/DynamiteModule(22220): Dynamite loader version >= 2, using loadModule2NoCrashUtils I/DynamiteLoaderV2(22220): [71] Dynamitemodulesa W/b.disciplinova(22220): Unsupported class loader W/b.disciplinova(22220): Skipping duplicate class check due to unsupported classloader I/DynamiteModule(22220): Considering local module com.google.android.gms.vision.barcode:0 and remote module com.google.android.gms.vision.barcode:1 I/DynamiteModule(22220): Selected remote version of com.google.android.gms.vision.barcode, version >= 1 I/DynamiteLoaderV2(22220): [71] VisionBarcode.optional W/b.disciplinova(22220): Unsupported class loader W/b.disciplinova(22220): Skipping duplicate class check due to unsupported classloader W/b.disciplinova(22220): Accessing hidden field Ljava/nio/Buffer;->address:J (light greylist, reflection) I/ActivityThread(22220): com.google.android.gms.phenotype acquiringCount 2

And here after granting the permission: I/cgl.fqs.FlutterQrBarScannerPlugin(22220): Permissions request granted. I/cgl.fqs.FlutterQrBarScannerPlugin(22220): Permissions request granted. D/AndroidRuntime(22220): Shutting down VM E/AndroidRuntime(22220): FATAL EXCEPTION: main E/AndroidRuntime(22220): Process: com.ondrejholub.disciplinovac, PID: 22220 E/AndroidRuntime(22220): java.lang.RuntimeException: Failure delivering result ResultInfo{who=@android:requestPermissions:, request=1, result=-1, data=Intent { act=android.content.pm.action.REQUEST_PERMISSIONS (has extras) }} to activity {com.ondrejholub.disciplinovac/com.example.disciplinovac.MainActivity}: java.lang.NullPointerException: Attempt to read from field 'com.github.contactlutforrahman.flutter_qr_bar_scanner.QrReader com.github.contactlutforrahman.flutter_qr_bar_scanner.FlutterQrBarScannerPlugin$ReadingInstance.reader' on a null object reference E/AndroidRuntime(22220): at android.app.ActivityThread.deliverResults(ActivityThread.java:4382) E/AndroidRuntime(22220): at android.app.ActivityThread.handleSendResult(ActivityThread.java:4424) E/AndroidRuntime(22220): at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49) E/AndroidRuntime(22220): at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) E/AndroidRuntime(22220): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) E/AndroidRuntime(22220): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1818) E/AndroidRuntime(22220): at android.os.Handler.dispatchMessage(Handler.java:106) E/AndroidRuntime(22220): at android.os.Looper.loop(Looper.java:193) E/AndroidRuntime(22220): at android.app.ActivityThread.main(ActivityThread.java:6762) E/AndroidRuntime(22220): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime(22220): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) E/AndroidRuntime(22220): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) E/AndroidRuntime(22220): Caused by: java.lang.NullPointerException: Attempt to read from field 'com.github.contactlutforrahman.flutter_qr_bar_scanner.QrReader com.github.contactlutforrahman.flutter_qr_bar_scanner.FlutterQrBarScannerPlugin$ReadingInstance.reader' on a null object reference E/AndroidRuntime(22220): at com.github.contactlutforrahman.flutter_qr_bar_scanner.FlutterQrBarScannerPlugin.stopReader(FlutterQrBarScannerPlugin.java:73) E/AndroidRuntime(22220): at com.github.contactlutforrahman.flutter_qr_bar_scanner.FlutterQrBarScannerPlugin.onRequestPermissionsResult(FlutterQrBarScannerPlugin.java:60) E/AndroidRuntime(22220): at io.flutter.embedding.engine.FlutterEnginePluginRegistry$FlutterEngineActivityPluginBinding.onRequestPermissionsResult(FlutterEnginePluginRegistry.java:612) E/AndroidRuntime(22220): at io.flutter.embedding.engine.FlutterEnginePluginRegistry.onRequestPermissionsResult(FlutterEnginePluginRegistry.java:356) E/AndroidRuntime(22220): at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onRequestPermissionsResult(FlutterActivityAndFragmentDelegate.java:509) E/AndroidRuntime(22220): at io.flutter.embedding.android.FlutterActivity.onRequestPermissionsResult(FlutterActivity.java:611) E/AndroidRuntime(22220): at android.app.Activity.dispatchRequestPermissionsResult(Activity.java:7608) E/AndroidRuntime(22220): at android.app.Activity.dispatchActivityResult(Activity.java:7458) E/AndroidRuntime(22220): at android.app.ActivityThread.deliverResults(ActivityThread.java:4375) E/AndroidRuntime(22220): ... 11 more I/Process (22220): Sending signal. PID: 22220 SIG: 9 Lost connection to device.

The scanner part of my source code (_camState sets true on initState):

SizedBox(
  width: 300,
  height: 300,
  child: _camState ?
           QRBarScannerCamera(
             notStartedBuilder: (BuildContext context){
               return Text('Loading...');
             },
             onError: (context, error) => Text(
               error.toString(),
               style: TextStyle(color: Colors.red),
             ),
             formats: [BarcodeFormats.QR_CODE],
             qrCodeCallback: (code){
                . . .
             });
           }
         )
         :
         Text('Wait')
         )

Is there any existing solution I'm missing out, or is it a real issue? Thanks!

MatheeeusCp commented 4 years ago

I'm having the same issue. Did you find any solution?

achinverma commented 4 years ago

i am getting the same error, any solution for this @contactlutforrahman ?