flutter_boost
flutter_boost copied to clipboard
java.lang.NullPointerException: Attempt to invoke virtual method 'int com.idlefish.flutterboost.Platform.whenEngineStart()' on a null object reference
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tencent.wemeet.app/com.idlefish.flutterboost.containers.BoostFlutterActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.idlefish.flutterboost.Platform.whenEngineStart()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3897)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4076)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2473)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:219)
at android.app.ActivityThread.main(ActivityThread.java:8349)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.idlefish.flutterboost.Platform.whenEngineStart()' on a null object reference
at com.idlefish.flutterboost.containers.FlutterActivityAndFragmentDelegate.onAttach(FlutterActivityAndFragmentDelegate.java:89)
at com.idlefish.flutterboost.containers.BoostFlutterActivity.onCreate(BoostFlutterActivity.java:145)
at android.app.Activity.performCreate(Activity.java:8085)
at android.app.Activity.performCreate(Activity.java:8073)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1320)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3870)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4076)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2473)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:219)
at android.app.ActivityThread.main(ActivityThread.java:8349)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
Steps to Reproduce
A small application to reproduce the bug(最小化可复现的demo)
- ...
- ...
- ...
Flutter Boost Version 1.17.1 Target Platform:. mac Target OS version/browser: android Devices: 荣耀
Logs
add your crash log or something else.
ths same problem on samsug s7
init flutterboost in my application solve it
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tencent.wemeet.app/com.idlefish.flutterboost.containers.BoostFlutterActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.idlefish.flutterboost.Platform.whenEngineStart()' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3897) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4076) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2473) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loop(Looper.java:219) at android.app.ActivityThread.main(ActivityThread.java:8349) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.idlefish.flutterboost.Platform.whenEngineStart()' on a null object reference at com.idlefish.flutterboost.containers.FlutterActivityAndFragmentDelegate.onAttach(FlutterActivityAndFragmentDelegate.java:89) at com.idlefish.flutterboost.containers.BoostFlutterActivity.onCreate(BoostFlutterActivity.java:145) at android.app.Activity.performCreate(Activity.java:8085) at android.app.Activity.performCreate(Activity.java:8073) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1320) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3870) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4076) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2473) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loop(Looper.java:219) at android.app.ActivityThread.main(ActivityThread.java:8349) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
Steps to Reproduce
A small application to reproduce the bug(最小化可复现的demo)
- ...
- ...
- ...
Flutter Boost Version 1.17.1 Target Platform:. mac Target OS version/browser: android Devices: 荣耀
Logs
add your crash log or something else.
按 example里的方式初始化的吗?
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tencent.wemeet.app/com.idlefish.flutterboost.containers.BoostFlutterActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.idlefish.flutterboost.Platform.whenEngineStart()' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3897) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4076) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2473) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loop(Looper.java:219) at android.app.ActivityThread.main(ActivityThread.java:8349) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.idlefish.flutterboost.Platform.whenEngineStart()' on a null object reference at com.idlefish.flutterboost.containers.FlutterActivityAndFragmentDelegate.onAttach(FlutterActivityAndFragmentDelegate.java:89) at com.idlefish.flutterboost.containers.BoostFlutterActivity.onCreate(BoostFlutterActivity.java:145) at android.app.Activity.performCreate(Activity.java:8085) at android.app.Activity.performCreate(Activity.java:8073) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1320) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3870) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4076) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2473) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loop(Looper.java:219) at android.app.ActivityThread.main(ActivityThread.java:8349) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
Steps to Reproduce
A small application to reproduce the bug(最小化可复现的demo)
- ...
- ...
- ...
Flutter Boost Version 1.17.1 Target Platform:. mac Target OS version/browser: android Devices: 荣耀
Logs
add your crash log or something else.
按 example里的方式初始化的吗?
上下文使用的application的上下文。在启动的task线程里面初始化的。非必先bug。
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tencent.wemeet.app/com.idlefish.flutterboost.containers.BoostFlutterActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.idlefish.flutterboost.Platform.whenEngineStart()' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3897) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4076) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2473) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loop(Looper.java:219) at android.app.ActivityThread.main(ActivityThread.java:8349) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.idlefish.flutterboost.Platform.whenEngineStart()' on a null object reference at com.idlefish.flutterboost.containers.FlutterActivityAndFragmentDelegate.onAttach(FlutterActivityAndFragmentDelegate.java:89) at com.idlefish.flutterboost.containers.BoostFlutterActivity.onCreate(BoostFlutterActivity.java:145) at android.app.Activity.performCreate(Activity.java:8085) at android.app.Activity.performCreate(Activity.java:8073) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1320) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3870) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4076) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2473) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loop(Looper.java:219) at android.app.ActivityThread.main(ActivityThread.java:8349) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
Steps to Reproduce
A small application to reproduce the bug(最小化可复现的demo)
- ...
- ...
- ...
Flutter Boost Version 1.17.1 Target Platform:. mac Target OS version/browser: android Devices: 荣耀
Logs
add your crash log or something else.
嗯,应该是执行顺序的关系
native项目中嵌套flutter,当在flutter打开的native页面崩溃后,比如那种无法捕获的so崩溃,然后再返回到这个flutterAcitivity时就会无限循环的报这个空指针异常,怎么解?
在启动的task线程里面初始化的。非必先bug。
查到原因了吗?应该还是初始化方式的问题,初始化失败了
我也出了同样的问题,不知道怎么解决
不要把flutterboost初始化的代码放在子线程中,在Application的onCreate初始化就可以了,如果担心APP启动耗时过长,可以设置为 FlutterBoost.ConfigBuilder.FLUTTER_ACTIVITY_CREATED,在首次打开flutter页面时再初始化引擎
我这边也遇到了类似情况: 如果你的FlutterBoost初始化配置是: FlutterBoost.ConfigBuilder.IMMEDIATELY 立即初始化,然后又对引擎初始化做懒加载(即只有打开Flutter页面才去立即初始化),这时候会存在一个场景如果打开的当前Flutter页面退到后台,在内存不足或资源紧张情况下APP进程会被杀死,当你从后台再切回前台时,实际上相当于启动了一个新的进程,这是直接打开Flutter页面就会报这个NPE异常,这是因为引擎没有走初始化,flutterBoost中绑定的platform为null导致了NPE。可以考虑在页面onCreate时再做一次check