Flutter应用在使用电话包时收到短信后崩溃



我有一个应用程序,将自动扫描传入短信。在调试中一切似乎都很好,但在应用程序的发布版本中,当收到新的短信时,它会崩溃。下面是堆栈跟踪。我正在使用电话包,并已按照电话包文档(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对后台功能不友好。