我的(Flutter)移动应用程序使用 Firebase 消息传递,并且在调试模式下工作正常,但是当我在发布模式下运行/构建它时,它会在收到来自 Firebase 的消息后崩溃。我怀疑
onMessage.listen
会导致应用程序崩溃。它仅发生在 Android 设备上。
在 Firebase 项目设置期间或 Android 应用配置中是否有我可能错过的任何内容?
收到消息后会产生以下错误日志:
E/AndroidRuntime(26859): FATAL EXCEPTION: firebase-iid-executor
E/AndroidRuntime(26859): Process: com.company.app, PID: 26859
E/AndroidRuntime(26859): java.lang.IllegalAccessError: Illegal class access: 'b.c.a.b.d.a' attempting to access 'b.c.a.b.b.a.c' (declaration of 'b.c.a.b.d.a' appears in base.apk)
E/AndroidRuntime(26859): at b.c.a.b.d.a.<init>(Unknown Source:169)
E/AndroidRuntime(26859): at b.c.a.b.d.a.<init>(:1)
E/AndroidRuntime(26859): at com.google.firebase.messaging.l0.b(:1)
E/AndroidRuntime(26859): at com.google.firebase.messaging.Y.e(:2)
E/AndroidRuntime(26859): at com.google.firebase.messaging.m.call(:1)
E/AndroidRuntime(26859): at b.c.a.b.e.F.run(Unknown Source:4)
E/AndroidRuntime(26859): at com.google.firebase.messaging.n.execute(Unknown Source:0)
E/AndroidRuntime(26859): at b.c.a.b.e.m.c(Unknown Source:20)
E/AndroidRuntime(26859): at com.google.firebase.messaging.o.c(:1)
E/AndroidRuntime(26859): at b.c.a.b.a.a.b(:1)
E/AndroidRuntime(26859): at b.c.a.b.a.a.a(Unknown Source:21)
E/AndroidRuntime(26859): at b.c.a.b.a.g.run(Unknown Source:10)
E/AndroidRuntime(26859): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/AndroidRuntime(26859): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/AndroidRuntime(26859): at com.google.android.gms.common.util.e.b.run(Unknown Source:6)
E/AndroidRuntime(26859): at java.lang.Thread.run(Thread.java:923)
通过将以下代码添加到
/android/app/build.gradle
解决了问题:
...
buildTypes {
release {
...
shrinkResources false
minifyEnabled false
}
}
并将以下代码添加到
/android/gradle.properties
:
android.enableR8=false