未使用Android App Bundle表示的Google Play崩溃日志

Col*_*mbo 6 android android-ndk google-play android-vitals android-app-bundle

我们最近更新了我们的应用程序,以使用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
Run Code Online (Sandbox Code Playgroud)

该问题影响armv7和arm64的崩溃。有时,错误将具有正确符号化的调用堆栈,现在大约有10%被正确符号化。在使用AAB和arm64之前,我们已经看到几乎所有的调用栈都被正确地符号化了。

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

还有其他人遇到类似的困难吗?

有任何已知的解决方法吗?

是否有人更新为使用AAB,并且在Google Play控制台中看到崩溃报告符号没有任何问题?

Pie*_*rre 10

这似乎与以下事实有关:本机库在APK中保持未压缩状态。

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

android.bundle.enableUncompressedNativeLibs=false
Run Code Online (Sandbox Code Playgroud)

您需要发布使用此选项构建的新App Bundle。

  • Google的团队正在寻求解决这个问题。请注意,在最新的Gradle金丝雀中,此标志不会被标记为不受支持。 (2认同)