rekabhq / background_locator

A Flutter plugin for updating location in background.
MIT License
288 stars 327 forks source link

FATAL EXCEPTION: java.lang.UnsatisfiedLinkError: No implementation found for io.flutter.view.FlutterCallbackInformation io.flutter.embedding.engine.FlutterJNI.nativeLookupCallbackInformation #263

Open saravananmnm opened 3 years ago

saravananmnm commented 3 years ago

E/AndroidRuntime(18193): FATAL EXCEPTION: main E/AndroidRuntime(18193): Process: com.courieralliance.driverca.dev, PID: 18193 E/AndroidRuntime(18193): java.lang.UnsatisfiedLinkError: No implementation found for io.flutter.view.FlutterCallbackInformation io.flutter.embedding.engine.FlutterJNI.nativeLookupCallbackInformation(long) (tried Java_io_flutter_embedding_engine_FlutterJNI_nativeLookupCallbackInformation and Java_io_flutter_embedding_engine_FlutterJNI_nativeLookupCallbackInformation__J) E/AndroidRuntime(18193): at io.flutter.embedding.engine.FlutterJNI.nativeLookupCallbackInformation(Native Method) E/AndroidRuntime(18193): at io.flutter.view.FlutterCallbackInformation.lookupCallbackInformation(:30) E/AndroidRuntime(18193): at rekab.app.background_locator.c.a(:21) E/AndroidRuntime(18193): at rekab.app.background_locator.IsolateHolderService.onCreate(:115) E/AndroidRuntime(18193): at android.app.ActivityThread.handleCreateService(ActivityThread.java:3953) E/AndroidRuntime(18193): at android.app.ActivityThread.access$1500(ActivityThread.java:219) E/AndroidRuntime(18193): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1875) E/AndroidRuntime(18193): at android.os.Handler.dispatchMessage(Handler.java:107) E/AndroidRuntime(18193): at android.os.Looper.loop(Looper.java:214) E/AndroidRuntime(18193): at android.app.ActivityThread.main(ActivityThread.java:7356) E/AndroidRuntime(18193): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime(18193): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) E/AndroidRuntime(18193): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

Trteich commented 3 years ago

I have the same issue on several devices android 10, 11

Trteich commented 3 years ago

Dont know steps to reproduce from users. But I'm able to catch it every time I stop installed app through Android studio. Seems like Service is trying to restart after app was stopped.

While using my app could not reproduce this error, But i can see crash logs from users in Firebase

Some info from Firebase:

Fatal Exception: java.lang.RuntimeException
Unable to create service rekab.app.background_locator.IsolateHolderService: java.lang.NullPointerException: Attempt to read from field 'java.lang.String io.flutter.view.FlutterCallbackInformation.callbackLibraryPath' on a null object reference
android.app.ActivityThread.handleCreateService
Trteich commented 3 years ago

I've covered whole body of function internal fun IsolateHolderService.startLocatorService(context: Context) into try/catch and it helped, but it'is complete fix (((((

Wian-TMC commented 3 years ago

Here are some additional logs of the error. This issue is causing daily crashes.

Fatal Exception: java.lang.UnsatisfiedLinkError: No implementation found for io.flutter.view.FlutterCallbackInformation io.flutter.embedding.engine.FlutterJNI.nativeLookupCallbackInformation(long) (tried Java_io_flutter_embedding_engine_FlutterJNI_nativeLookupCallbackInformation and Java_io_flutter_embedding_engine_FlutterJNI_nativeLookupCallbackInformation__J)
       at io.flutter.embedding.engine.FlutterJNI.nativeLookupCallbackInformation(FlutterJNI.java)
       at io.flutter.view.FlutterCallbackInformation.lookupCallbackInformation(FlutterCallbackInformation.java)
       at rekab.app.background_locator.IsolateHolderExtensionKt.startLocatorService(IsolateHolderExtensionKt.java:52)
       at rekab.app.background_locator.IsolateHolderService.onCreate(IsolateHolderService.java:3)
       at android.app.ActivityThread.handleCreateService(ActivityThread.java:4607)
       at android.app.ActivityThread.access$1600(ActivityThread.java:301)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2167)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:246)
       at android.app.ActivityThread.main(ActivityThread.java:8512)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1139)
saravananmnm commented 3 years ago

@mehdok This issue occurs when you change the location permission status always to deny.

No implementation found for io.flutter.view.FlutterCallbackInformation io.flutter.embedding.engine.FlutterJNI.nativeLookupCallbackInformation(long) (tried Java_io_flutter_embedding_engine_FlutterJNI_nativeLookupCallbackInformation and Java_io_flutter_embedding_engine_FlutterJNI_nativeLookupCallbackInformationJ) 2021-08-25 14:52:09.165 14810-14810/com.courieralliance.driverca.dev E/AndroidRuntime: FATAL EXCEPTION: main Process: com.courieralliance.driverca.dev, PID: 14810 java.lang.UnsatisfiedLinkError: No implementation found for io.flutter.view.FlutterCallbackInformation io.flutter.embedding.engine.FlutterJNI.nativeLookupCallbackInformation(long) (tried Java_io_flutter_embedding_engine_FlutterJNI_nativeLookupCallbackInformation and Java_io_flutter_embedding_engine_FlutterJNI_nativeLookupCallbackInformationJ) at io.flutter.embedding.engine.FlutterJNI.nativeLookupCallbackInformation(Native Method) at io.flutter.view.FlutterCallbackInformation.lookupCallbackInformation(:30) at rekab.app.background_locator.c.a(:21) at rekab.app.background_locator.IsolateHolderService.onCreate(:115) at android.app.ActivityThread.handleCreateService(ActivityThread.java:3953) at android.app.ActivityThread.access$1500(ActivityThread.java:219) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1875) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 2021-08-25 14:52:11.066 14863-14863/com.courieralliance.driverca.dev E/ce.driverca.de: No implementation found for io.flutter.view.FlutterCallbackInformation io.flutter.embedding.engine.FlutterJNI.nativeLookupCallbackInformation(long) (tried Java_io_flutter_embedding_engine_FlutterJNI_nativeLookupCallbackInformation and Java_io_flutter_embedding_engine_FlutterJNI_nativeLookupCallbackInformationJ) 2021-08-25 14:52:11.072 14863-14863/com.courieralliance.driverca.dev E/AndroidRuntime: FATAL EXCEPTION: main Process: com.courieralliance.driverca.dev, PID: 14863 java.lang.UnsatisfiedLinkError: No implementation found for io.flutter.view.FlutterCallbackInformation io.flutter.embedding.engine.FlutterJNI.nativeLookupCallbackInformation(long) (tried Java_io_flutter_embedding_engine_FlutterJNI_nativeLookupCallbackInformation and Java_io_flutter_embedding_engine_FlutterJNI_nativeLookupCallbackInformationJ) at io.flutter.embedding.engine.FlutterJNI.nativeLookupCallbackInformation(Native Method) at io.flutter.view.FlutterCallbackInformation.lookupCallbackInformation(:30) at rekab.app.background_locator.c.a(:21) at rekab.app.background_locator.IsolateHolderService.onCreate(:115) at android.app.ActivityThread.handleCreateService(ActivityThread.java:3953) at android.app.ActivityThread.access$1500(ActivityThread.java:219) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1875) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

Wian-TMC commented 2 years ago

Strange enough, I was able to replicate this when using the camera plugin image_picker to take a picture. When the app resumed after the picture was taken, this error occurred. It might suggest some faulty behaviour of background_locator when an app resumes after an image is taken.

mehdok commented 2 years ago

Hi guys;

Please make sure to run WidgetsFlutterBinding.ensureInitialized(); before running the service;

marcoheine commented 2 years ago

Strange enough, I was able to replicate this when using the camera plugin image_picker to take a picture. When the app resumed after the picture was taken, this error occurred. It might suggest some faulty behaviour of background_locator when an app resumes after an image is taken.

@Wian-TMC I have the same problem. Did you find a solution?

Wian-TMC commented 2 years ago

@marcoheine Not yet unfortunately

eveetc commented 2 years ago

I've got the same issue happening on Android 11 and 12 devices. Fortunately, "only" on 5