flutter_accessibility_service
flutter_accessibility_service copied to clipboard
Constant crashing used with foreground service
Start fine, but there's some sort of lifecycle issues which inevitably cause it to loop-crash.
I've tried a few different approaches to handle the lifecycles, initialisation, and isolate management, but I have been unable to find an incantation that prevents these errors:
These errors have been preventing us from launching our app for many months now and I simply cannot find a way round them. Any help would be gratefully appreciated! Absolutely mission critical.
FYI: our foreground service runner is https://pub.dev/packages/flutter_foreground_task.
Error 1
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'io.flutter.embedding.engine.renderer.FlutterRenderer io.flutter.embedding.engine.a.r()' on a null object reference
at io.flutter.embedding.android.FlutterView.attachToFlutterEngine(FlutterView.java:48)
at slayer.accessibility.service.flutter_accessibility_service.AccessibilityListener.onServiceConnected(AccessibilityListener.java:40)
at android.accessibilityservice.AccessibilityService.dispatchServiceConnected(AccessibilityService.java:858)
at android.accessibilityservice.AccessibilityService.-$$Nest$mdispatchServiceConnected()
at android.accessibilityservice.AccessibilityService$2.onServiceConnected(AccessibilityService.java:2734)
at android.accessibilityservice.AccessibilityService$IAccessibilityServiceClientWrapper.lambda$init$0(AccessibilityService.java:2900)
at android.accessibilityservice.AccessibilityService$IAccessibilityServiceClientWrapper.$r8$lambda$ufMCaNdIS-PlK1AEBiWmKpGSCoc()
at android.accessibilityservice.AccessibilityService$IAccessibilityServiceClientWrapper$$ExternalSyntheticLambda16.run(:8)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8248)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
Error 2
Fatal Exception: java.lang.RuntimeException: Unable to start service slayer.accessibility.service.flutter_accessibility_service.AccessibilityListener@585db68 with null: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.content.Intent.getBooleanExtra(java.lang.String, boolean)' on a null object reference
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4880)
at android.app.ActivityThread.-$$Nest$mhandleServiceArgs()
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2314)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8248)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.content.Intent.getBooleanExtra(java.lang.String, boolean)' on a null object reference
at slayer.accessibility.service.flutter_accessibility_service.AccessibilityListener.onStartCommand(AccessibilityListener.java:3)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4862)
at android.app.ActivityThread.-$$Nest$mhandleServiceArgs()
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2314)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8248)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
Error 3
Fatal Exception: java.lang.RuntimeException: Unable to destroy activity {ai.mycopilot.beta/ai.mycopilot.beta.MainActivity}: java.lang.IllegalArgumentException: Receiver not registered: f9.e$a@b92a94a
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:5654)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:5686)
at android.app.servertransaction.DestroyActivityItem.execute(DestroyActivityItem.java:47)
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:180)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:98)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2468)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8248)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
Caused by java.lang.IllegalArgumentException: Receiver not registered: f9.e$a@b92a94a
at android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:1671)
at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:1872)
at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:820)
at slayer.accessibility.service.flutter_accessibility_service.FlutterAccessibilityServicePlugin.onDetachedFromEngine(FlutterAccessibilityServicePlugin.java:15)
at io.flutter.embedding.engine.FlutterEngineConnectionRegistry.remove(FlutterEngineConnectionRegistry.java:121)
at io.flutter.embedding.engine.FlutterEngineConnectionRegistry.remove(FlutterEngineConnectionRegistry.java:16)
at io.flutter.embedding.engine.FlutterEngineConnectionRegistry.removeAll(FlutterEngineConnectionRegistry.java:11)
at io.flutter.embedding.engine.FlutterEngineConnectionRegistry.destroy(FlutterEngineConnectionRegistry.java:10)
at io.flutter.embedding.engine.FlutterEngine.destroy(FlutterEngine.java:31)
at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onDetach(FlutterActivityAndFragmentDelegate.java:100)
at io.flutter.embedding.android.FlutterActivity.onDestroy(FlutterActivity.java:18)
at android.app.Activity.performDestroy(Activity.java:8902)
at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1491)
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:5641)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:5686)
at android.app.servertransaction.DestroyActivityItem.execute(DestroyActivityItem.java:47)
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:180)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:98)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2468)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8248)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
Error 3
Fatal Exception: java.lang.NoSuchMethodError: No interface method anyMatch(Lj$/util/function/Predicate;)Z in class Lj$/util/stream/Stream; or its super classes (declaration of 'j$.util.stream.Stream' appears in /data/app/~~ZLFWe7X3Fq5Nv8kTOjKieQ==/androidx.test.tools.crawler-MQkMpzA8jfAAOwsP0Op8kw==/base.apk!classes2.dex)
at io.flutter.embedding.android.FlutterView.sendUserSettingsToFlutter(FlutterView.java:51)
at io.flutter.embedding.android.FlutterView.attachToFlutterEngine(FlutterView.java:263)
at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onCreateView(FlutterActivityAndFragmentDelegate.java:130)
at io.flutter.embedding.android.FlutterActivity.createFlutterView(FlutterActivity.java:18)
at io.flutter.embedding.android.FlutterActivity.onCreate(FlutterActivity.java:31)
at android.app.Activity.performCreate(Activity.java:8074)
at android.app.Activity.performCreate(Activity.java:8054)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1341)
at androidx.test.runner.MonitoringInstrumentation.callActivityOnCreate(MonitoringInstrumentation.java:2)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3688)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3864)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2253)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7870)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)