我们最近更新了我们的应用程序,以使用Android应用程序捆绑包(aab),还包括arm64本机库。
这样做以来,我们的崩溃记录未正确表示“ Google Play控制台”->“ Android Vitals”->“ ANR和崩溃”中的本机代码(java调用栈表示正常)。
典型调用堆栈中的代码段如下所示:
#21 pc 000000000015addc /data/app/com.mycompany.mygame-2/split_config.arm64_v8a.apk
#22 pc 0000000000293768 /data/app/com.mycompany.mygame-2/split_config.arm64_v8a.apk
#23 pc 0000000000294cf0 /data/app/com.mycompany.mygame-2/split_config.arm64_v8a.apk
该问题影响armv7和arm64的崩溃。有时,错误将具有正确符号化的调用堆栈,现在大约有10%被正确符号化。在使用AAB和arm64之前,我们已经看到几乎所有的调用栈都被正确地符号化了。
要解决此问题,我们使用Crashlytics进行了调查,但也无法以这种方式获取正确符号化的调用堆栈。由于我们之前没有使用过Crashlytics,因此我们很难知道它是否遇到相同的问题,或者我们是否只是错误地设置了Crashlytics。但是,此post表示其他用户可能在使用AAB和Crashlytics时遇到了麻烦。
还有其他人遇到类似的困难吗?
有任何已知的解决方法吗?
有人更新过使用AAB的情况,并且在Google Play控制台中看不到崩溃报告符号的任何问题吗?
答案 0 :(得分:2)
这似乎与本机库在APK中保持未压缩的事实有关。
通过在gradle.properties
中添加以下选项,可以将其禁用:
android.bundle.enableUncompressedNativeLibs=false
您需要发布使用此选项构建的新App Bundle。