mintware-de / flutter_barcode_reader

A flutter plugin for reading 2D barcodes and QR codes.
MIT License
628 stars 462 forks source link

Headless background task can not be executed if barcode library is embeded #85

Closed plake876 closed 4 years ago

plake876 commented 5 years ago

Hi, i have a problem using the library background_fetch (background_fetch: '^0.1.0') when I embed the barcode library. I get the following exception if my background task starts:

java.lang.RuntimeException: java.lang.IllegalStateException: registrar.activity() must not be null 02-25 11:32:42.472 11461 11461 E AndroidRuntime: at android.app.job.JobServiceEngine$JobHandler.handleMessage(JobServiceEngine.java:112)
02-25 11:32:42.472 11461 11461 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:108) 02-25 11:32:42.472 11461 11461 E AndroidRuntime: at android.os.Looper.loop(Looper.java:166) 02-25 11:32:42.472 11461 11461 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7425) 02-25 11:32:42.472 11461 11461 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 02-25 11:32:42.472 11461 11461 E AndroidRuntime: at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245) 02-25 11:32:42.472 11461 11461 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921) 02-25 11:32:42.472 11461 11461 E AndroidRuntime: Caused by: java.lang.IllegalStateException: registrar.activity() must not be null 02-25 11:32:42.472 11461 11461 E AndroidRuntime: at com.apptreesoftware.barcodescan.BarcodeScanPlugin$Companion.registerWith(BarcodeScanPlugin.kt:19) 02-25 11:32:42.472 11461 11461 E AndroidRuntime: at com.apptreesoftware.barcodescan.BarcodeScanPlugin.registerWith(Unknown Source:2) 02-25 11:32:42.472 11461 11461 E AndroidRuntime: at io.flutter.plugins.GeneratedPluginRegistrant.registerWith(GeneratedPluginRegistrant.java:22) 02-25 11:32:42.472 11461 11461 E AndroidRuntime: at com.example.xyz.Application.registerWith(Application.java:17) 02-25 11:32:42.472 11461 11461 E AndroidRuntime: at com.transistorsoft.flutter.backgroundfetch.HeadlessTask.initFlutterView(HeadlessTask.java:133) 02-25 11:32:42.472 11461 11461 E AndroidRuntime: at com.transistorsoft.flutter.backgroundfetch.HeadlessTask.(HeadlessTask.java:47)
02-25 11:32:42.472 11461 11461 E AndroidRuntime: at com.transistorsoft.flutter.backgroundfetch.HeadlessJobService.onStartJob(HeadlessJobService.java:38)
02-25 11:32:42.472 11461 11461 E AndroidRuntime: at android.app.job.JobService$1.onStartJob(JobService.j 02-25 11:32:42.472 11461 11461 E AndroidRuntime: at android.app.job.JobServiceEngine$JobHandler.handleMessage(JobServiceEngine.java)

See also Issue: https://github.com/transistorsoft/flutter_background_fetch/issues/12

mohamedameer020 commented 5 years ago

mee too

mohamedameer020 commented 5 years ago

transistorsoft/flutter_background_fetch#12

have you got any idea?

pedrvaldir commented 4 years ago

mee too, problem persists.

galves93 commented 4 years ago

same problem here... i'm try has been 2 days and nothing, if someone can run, please tell us... rsrs

rahulbagal commented 4 years ago

We have same issue I am using barcode_scan: ^1.0.0

Please check

Guard code against when running headless, since there is no Activity in the Headless context.

E/AndroidRuntime(23350): java.lang.IllegalStateException: registrar.activity() must not be null E/AndroidRuntime(23350): at com.apptreesoftware.barcodescan.BarcodeScanPlugin$Companion.registerWith(BarcodeScanPlugin.kt:19) E/AndroidRuntime(23350): at com.apptreesoftware.barcodescan.BarcodeScanPlugin.registerWith(Unknown Source:2) E/AndroidRuntime(23350): at io.flutter.plugins.GeneratedPluginRegistrant.registerWith(GeneratedPluginRegistrant.java:38) E/AndroidRuntime(23350): at in.milton.smartthings.Application.registerWith(Application.java:34) E/AndroidRuntime(23350): at com.transistorsoft.flutter.backgroundgeolocation.HeadlessTask.initFlutterView(HeadlessTask.java:180) E/AndroidRuntime(23350): at com.transistorsoft.flutter.backgroundgeolocation.HeadlessTask.access$400(HeadlessTask.java:32) E/AndroidRuntime(23350): at com.transistorsoft.flutter.backgroundgeolocation.HeadlessTask$TaskRunner$1.run(HeadlessTask.java:210) E/AndroidRuntime(23350): at android.os.Handler.handleCallback(Handler.java:790) E/AndroidRuntime(23350): at android.os.Handler.dispatchMessage(Handler.java:99) E/AndroidRuntime(23350): at android.os.Looper.loop(Looper.java:164) E/AndroidRuntime(23350): at android.app.ActivityThread.main(ActivityThread.java:6494) E/AndroidRuntime(23350): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime(23350): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) E/AndroidRuntime(23350): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) E/TSLocationManager(23350): [c.t.l.a.BackgroundGeolocation$e uncaughtException]

devtronic commented 4 years ago

Will be fixed in 3.x. See #185 for details

devtronic commented 4 years ago

https://pub.dev/packages/barcode_scan/versions/3.0.0-dev.1