X-SLAYER / flutter_overlay_window

Flutter plugin for displaying flutter app over other apps on the screen
https://pub.dev/packages/flutter_overlay_window
MIT License
94 stars 98 forks source link

Crash in production #112

Open OsamaQureshi796 opened 1 month ago

OsamaQureshi796 commented 1 month ago

Hello @X-SLAYER ,

Thank you soo much for having such an awesome plugin for flutter.

I want to bring one issue to your attention that is happening in the production.

Here's the stack-trace from firebase-crashlytics.

# Crashlytics - Stack trace
# Platform: android

This happens mostly in Oppo devices.

Fatal Exception: java.lang.RuntimeException
Unable to create service flutter.overlay.window.flutter_overlay_window.OverlayService: java.lang.NullPointerException: Attempt to invoke virtual method 'kd.a io.flutter.embedding.engine.a.j()' on a null object reference

Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'kd.a io.flutter.embedding.engine.a.j()' on a null object reference
       at flutter.overlay.window.flutter_overlay_window.OverlayService.<init>(:35)
       at java.lang.Class.newInstance(Class.java)
       at android.app.AppComponentFactory.instantiateService(AppComponentFactory.java:129)
       at androidx.core.app.CoreComponentFactory.instantiateService()
       at android.app.ActivityThread.handleCreateService(ActivityThread.java:5073)
       at android.app.ActivityThread.-$$Nest$mhandleCreateService()
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2506)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loopOnce(Looper.java:230)
       at android.os.Looper.loop(Looper.java:319)
       at android.app.ActivityThread.main(ActivityThread.java:8893)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

Caused by java.lang.NullPointerException
Attempt to invoke virtual method 'kd.a io.flutter.embedding.engine.a.j()' on a null object reference

Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'kd.a io.flutter.embedding.engine.a.j()' on a null object reference
       at flutter.overlay.window.flutter_overlay_window.OverlayService.<init>(:35)
       at java.lang.Class.newInstance(Class.java)
       at android.app.AppComponentFactory.instantiateService(AppComponentFactory.java:129)
       at androidx.core.app.CoreComponentFactory.instantiateService()
       at android.app.ActivityThread.handleCreateService(ActivityThread.java:4731)
       at android.app.ActivityThread.-$$Nest$mhandleCreateService()
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2335)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loopOnce(Looper.java:240)
       at android.os.Looper.loop(Looper.java:351)
       at android.app.ActivityThread.main(ActivityThread.java:8436)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:568)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)

please let me know if you need further information from my side.

thanks

chinmay4github1987 commented 1 month ago

/MethodChannel#x-slayer/overlay_channel( 6714): Failed to handle method call E/MethodChannel#x-slayer/overlay_channel( 6714): java.lang.IllegalStateException: Not allowed to start service Intent { flg=0x30000000 cmp=com.qspiders.flutter_project/flutter.overlay.window.flutter_overlay_window.OverlayService (has extras) }: app is in background uid UidRecord{ef07ad0 u0a168 LAST bg:+27m44s110ms idle change:cached procs:1 seq(0,0,0)} E/MethodChannel#x-slayer/overlay_channel( 6714): at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1616) E/MethodChannel#x-slayer/overlay_channel( 6714): at android.app.ContextImpl.startService(ContextImpl.java:1571) E/MethodChannel#x-slayer/overlay_channel( 6714): at android.content.ContextWrapper.startService(ContextWrapper.java:669) E/MethodChannel#x-slayer/overlay_channel( 6714): at flutter.overlay.window.flutter_overlay_window.FlutterOverlayWindowPlugin.onMethodCall(FlutterOverlayWindowPlugin.java:110) E/MethodChannel#x-slayer/overlay_channel( 6714): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:267) E/MethodChannel#x-slayer/overlay_channel( 6714): at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295) E/MethodChannel#x-slayer/overlay_channel( 6714): at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:322) E/MethodChannel#x-slayer/overlay_channel( 6714): at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12) E/MethodChannel#x-slayer/overlay_channel( 6714): at android.os.Handler.handleCallback(Handler.java:883) E/MethodChannel#x-slayer/overlay_channel( 6714): at android.os.Handler.dispatchMessage(Handler.java:100) E/MethodChannel#x-slayer/overlay_channel( 6714): at android.os.Looper.loop(Looper.java:214) E/MethodChannel#x-slayer/overlay_channel( 6714): at android.app.ActivityThread.main(ActivityThread.java:7356) E/MethodChannel#x-slayer/overlay_channel( 6714): at java.lang.reflect.Method.invoke(Native Method) E/MethodChannel#x-slayer/overlay_channel( 6714): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491) E/MethodChannel#x-slayer/overlay_channel( 6714): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940) E/flutter ( 6714): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(error, Not allowed to start service Intent { flg=0x30000000 cmp=com.qspiders.flutter_project/flutter.overlay.window.flutter_overlay_window.OverlayService (has extras) }: app is in background uid UidRecord{ef07ad0 u0a168 LAST bg:+27m44s110ms idle change:cached procs:1 seq(0,0,0)}, null, java.lang.IllegalStateException: Not allowed to start service Intent { flg=0x30000000 cmp=com.qspiders.flutter_project/flutter.overlay.window.flutter_overlay_window.OverlayService (has extras) }: app is in background uid UidRecord{ef07ad0 u0a168 LAST bg:+27m44s110ms idle change:cached procs:1 seq(0,0,0)} E/flutter ( 6714): at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1616) E/flutter ( 6714): at android.app.ContextImpl.startService(ContextImpl.java:1571) E/flutter ( 6714): at android.content.ContextWrapper.startService(ContextWrapper.java:669) E/flutter ( 6714): at flutter.overlay.window.flutter_overlay_window.FlutterOverlayWindowPlugin.onMethodCall(FlutterOverlayWindowPlugin.java:110) E/flutter ( 6714): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:267) E/flutter ( 6714): at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295) E/flutter ( 6714): at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:322) E/flutter ( 6714): at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12) E/flutter ( 6714): at android.os.Handler.handleCallback(Handler.java:883) E/flutter ( 6714): at android.os.Handler.dispatchMessage(Handler.java:100) E/flutter ( 6714): at android.os.Looper.loop(Looper.java:214) E/flutter ( 6714): at android.app.ActivityThread.main(ActivityThread.java:7356) E/flutter ( 6714): at java.lang.reflect.Method.invoke(Native Method) E/flutter ( 6714): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491) E/flutter ( 6714): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940) E/flutter ( 6714): ) E/flutter ( 6714): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:651:7) E/flutter ( 6714): #1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:322:18) E/flutter ( 6714): <asynchronous suspension> E/flutter ( 6714): #2 FlutterOverlayWindow.showOverlay (package:flutter_overlay_window/src/overlay_window.dart:54:5) E/flutter ( 6714): <asynchronous suspension> E/flutter ( 6714): #3 phoneStateBackgroundCallbackHandler (package:flutter_project/main.dart:279:7) E/flutter ( 6714): <asynchronous suspension> Getting error whenever an inocming call comes in background.

OsamaQureshi796 commented 3 weeks ago

Hi @X-SLAYER ,

Do you have any plan on this to resolve.

Thanks