nativescript-plugin-firebase icon indicating copy to clipboard operation
nativescript-plugin-firebase copied to clipboard

Barcode scanner crashes on Android with live video activated

Open cjohn001 opened this issue 4 years ago • 5 comments

Hello together, I am trying to use the Barcode scanner with live video capture. On IOS the barcode scanner is running as expected. On an android device (Android 8.0) and also on an emulator (Android 9.0) the scanner fails with the same error:

Stacktrace from device:

System.err: An uncaught Exception occurred on "main" thread.
System.err: Calling js method onPreviewFrame failed
System.err: TypeError: Cannot read property 'firebase' of undefined
System.err: 
System.err: StackTrace:
System.err: push.../node_modules/nativescript-plugin-firebase/mlkit/barcodescanning/index.js.MLKitBarcodeScanner.preProcessImage(file: node_modules/nativescript-plugin-firebase/mlkit/barcodescanning/index.android.js:97:0)
System.err:     at onPreviewFrame(file: node_modules/nativescript-plugin-firebase/mlkit/mlkit-cameraview.android.js:168:0)
System.err:     at com.tns.Runtime.callJSMethodNative(Native Method)
System.err:     at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1286)
System.err:     at com.tns.Runtime.callJSMethodImpl(Runtime.java:1173)
System.err:     at com.tns.Runtime.callJSMethod(Runtime.java:1160)
System.err:     at com.tns.Runtime.callJSMethod(Runtime.java:1138)
System.err:     at com.tns.Runtime.callJSMethod(Runtime.java:1134)
System.err:     at com.tns.gen.android.hardware.Camera_PreviewCallback.onPreviewFrame(Camera_PreviewCallback.java:20)
System.err:     at android.hardware.Camera$EventHandler.handleMessage(Camera.java:1124)
System.err:     at android.os.Handler.dispatchMessage(Handler.java:105)
System.err:     at android.os.Looper.loop(Looper.java:164)
System.err:     at android.app.ActivityThread.main(ActivityThread.java:6944)
System.err:     at java.lang.reflect.Method.invoke(Native Method)
System.err:     at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

Stacktrace from Emulator:

System.err: An uncaught Exception occurred on "main" thread.
System.err: Calling js method onPreviewFrame failed
System.err: TypeError: Cannot read property 'firebase' of undefined
System.err: 
System.err: StackTrace:
System.err: push.../node_modules/nativescript-plugin-firebase/mlkit/barcodescanning/index.js.MLKitBarcodeScanner.preProcessImage(file: node_modules/nativescript-plugin-firebase/mlkit/barcodescanning/index.android.js:97:0)
System.err:     at onPreviewFrame(file: node_modules/nativescript-plugin-firebase/mlkit/mlkit-cameraview.android.js:168:0)
System.err:     at com.tns.Runtime.callJSMethodNative(Native Method)
System.err:     at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1286)
System.err:     at com.tns.Runtime.callJSMethodImpl(Runtime.java:1173)
System.err:     at com.tns.Runtime.callJSMethod(Runtime.java:1160)
System.err:     at com.tns.Runtime.callJSMethod(Runtime.java:1138)
System.err:     at com.tns.Runtime.callJSMethod(Runtime.java:1134)
System.err:     at com.tns.gen.android.hardware.Camera_PreviewCallback.onPreviewFrame(Camera_PreviewCallback.java:20)
System.err:     at android.hardware.Camera$EventHandler.handleMessage(Camera.java:1209)
System.err:     at android.os.Handler.dispatchMessage(Handler.java:106)
System.err:     at android.os.Looper.loop(Looper.java:193)
System.err:     at android.app.ActivityThread.main(ActivityThread.java:6669)
System.err:     at java.lang.reflect.Method.invoke(Native Method)
System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

Has someone an idea what is going wrong here or how I can work arround the issue? Thanks for your help.

cjohn001 avatar Jul 01 '20 21:07 cjohn001

Same error System.err: An uncaught Exception occurred on "main" thread. System.err: Unable to create application com.tns.NativeScriptApplication: com.tns.NativeScriptException: Error calling module function System.err: TypeError: Cannot read property 'tasks' of undefined System.err: File: (file:///node_modules/nativescript-plugin-firebase/mlkit/barcodescanning/index.js:7:0) System.err:

My versions

"tns-android": { "version": "6.2.0" } and "nativescript-plugin-firebase": "^10.5.2",

Any help will be highly appreciated, thank you ...

SudhakarPunniyakotti avatar Sep 02 '20 22:09 SudhakarPunniyakotti

@sudhakar, Hello, it seems like the error is related to the android simulator which provides a kind of virtual camera in which you can setup a virtual scene to capture an image. The first time this simulation is loaded there seems to not exist an image preset. This seems to be responsible for the crash. Maybe use a different app to once start the simulation, The issue stopped appearing to me after this even if I am using new simulator images.

Best regards, Christoph

cjohn001 avatar Sep 05 '20 16:09 cjohn001

As a quick workaround drop support for inverse code scanning. <MLKitBarcodeScanner ... supportInverseBarcodes="false" ...

zalesak avatar Apr 19 '21 11:04 zalesak

@EddyVerbruggen can you help here? It seems that call for java function doesn`t work..

zalesak avatar Apr 19 '21 11:04 zalesak

So gyus, i found it out.

Just rename

node_modules@nativescript\firebase\platforms\android\nativescript-firebase-mlkit-helper.jar-disabled

to

node_modules@nativescript\firebase\platforms\android\nativescript-firebase-mlkit-helper.jar

I`ll create PR to solve this.

zalesak avatar Apr 20 '21 12:04 zalesak