Google Play崩溃日志未使用Android应用程序包进行符号化

Google Play崩溃日志未使用Android应用程序包进行符号化,android,android-ndk,google-play,android-app-bundle,android-vitals,Android,Android Ndk,Google Play,Android App Bundle,Android Vitals,我们最近更新了我们的应用程序,使用Android应用程序包(aab),还包括arm64本机库 由于这样做,我们在“Google Play Console”->“Android Vitals”->“ANRs&crash”中本机代码中的崩溃日志没有正确的符号化(java调用堆栈符号化良好) 典型调用堆栈中的代码段如下所示: #21 pc 000000000015addc /data/app/com.mycompany.mygame-2/split_config.arm64_v8a.apk

我们最近更新了我们的应用程序,使用Android应用程序包(aab),还包括arm64本机库

由于这样做,我们在“Google Play Console”->“Android Vitals”->“ANRs&crash”中本机代码中的崩溃日志没有正确的符号化(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的崩溃。偶尔一个bug会有一个正确符号化的调用堆栈,现在大约有10%是正确符号化的。在使用AAB和arm64之前,我们看到几乎所有的调用堆栈都被正确地符号化

为了解决这个问题,我们研究了使用Crashlytics,但也很难通过这种方式获得正确符号化的调用堆栈。因为我们以前没有使用过Crashlytics,所以我们很难知道它是否存在同样的问题,或者我们是否只是错误地设置了Crashlytics。但是,这表明其他用户可能在使用AAB和Crashlytics时遇到问题

还有其他人经历过类似的困难吗

是否有已知的解决方法


是否有人更新使用AABs,并且没有发现Google Play控制台中的崩溃报告符号有任何问题?

编辑:NDK 21 RC1应该解决这个问题

这似乎与本机库在APK中保持未压缩的事实有关

通过在
gradle.properties
中添加以下选项,可以禁用它:

android.bundle.enableUncompressedNativeLibs=false

您需要发布一个使用此选项构建的新应用程序包。

听起来很有希望,谢谢。可能需要一周左右的时间,我才能找到更新是否有用,但我会在更新后报告。请记住,禁用此功能将使您的应用程序在用户设备上更大,因为平台必须提取本机库才能加载它们。是的,这似乎已经解决了问题。非常感谢。谷歌的一个团队正在考虑解决这个问题。请注意,在Gradle的最新版本中,此标志不会被标记为不受支持。该警告已在Android Gradle插件的更高版本中删除。我相信您可以如上所述使用堆栈,并将地址提供给NDK工具链中的addr2line实用程序。您需要提供与PlayStore aab中嵌入的版本相对应的非压缩so文件。这是否回答了您的问题?