我有一个应用程序可以自动扫描收到的短信。在调试中似乎一切正常,但在应用程序的发布版本中,当收到新短信时它会崩溃。这是堆栈跟踪。我正在使用电话包并已授予所有权限,如电话包文档 (https://pub.dev/packages/telephony) 中所述。我在调用后台函数之前也使用过
@pragma('vm:entry-point')
E/AndroidRuntime(22045): FATAL EXCEPTION: main
E/AndroidRuntime(22045): Process: com.example.expense, PID: 22045
E/AndroidRuntime(22045): java.lang.RuntimeException: Unable to start receiver com.shounakmulay.telephony.sms.IncomingSmsReceiver: java.lang.NullPointerException: Attempt to read from field 'java.lang.String io.flutter.view.FlutterCallbackInformation.callbackLibraryPath' on a null object reference in method 'java.lang.String a1.a$b.toString()'
E/AndroidRuntime(22045): at android.app.ActivityThread.handleReceiver(ActivityThread.java:4561)
E/AndroidRuntime(22045): at android.app.ActivityThread.-$$Nest$mhandleReceiver(Unknown Source:0)
E/AndroidRuntime(22045): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2308)
E/AndroidRuntime(22045): at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime(22045): at android.os.Looper.loopOnce(Looper.java:240)
E/AndroidRuntime(22045): at android.os.Looper.loop(Looper.java:351)
E/AndroidRuntime(22045): at android.app.ActivityThread.main(ActivityThread.java:8364)
E/AndroidRuntime(22045): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(22045): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)
E/AndroidRuntime(22045): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)
E/AndroidRuntime(22045): Caused by: java.lang.NullPointerException: Attempt to read from field 'java.lang.String io.flutter.view.FlutterCallbackInformation.callbackLibraryPath' on a null object reference in method 'java.lang.String a1.a$b.toString()'
E/AndroidRuntime(22045): at a1.a$b.toString(Unknown Source:22)
E/AndroidRuntime(22045): at java.lang.String.valueOf(String.java:3657)
E/AndroidRuntime(22045): at java.lang.StringBuilder.append(StringBuilder.java:132)
E/AndroidRuntime(22045): at a1.a.i(Unknown Source:27)
E/AndroidRuntime(22045): at s0.b.k(Unknown Source:62)
E/AndroidRuntime(22045): at com.shounakmulay.telephony.sms.IncomingSmsReceiver.b(Unknown Source:30)
E/AndroidRuntime(22045): at com.shounakmulay.telephony.sms.IncomingSmsReceiver.c(Unknown Source:129)
E/AndroidRuntime(22045): at com.shounakmulay.telephony.sms.IncomingSmsReceiver.onReceive(Unknown Source:86)
E/AndroidRuntime(22045): at android.app.ActivityThread.handleReceiver(ActivityThread.java:4545)
E/AndroidRuntime(22045): ... 9 more
我在调用后台函数之前使用了
@pragma('vm:entry-point')
更新:降级flutter版本后生效。显然,最新版本的 flutter 对后台功能不友好。