Google 播放未用 Android App Bundle 符号化的崩溃日志
Google Play crash logs not symbolicated with Android App Bundle
我们最近更新了我们的应用程序以使用 Android App Bundle (aab) 并且还包括 arm64 本机库。
自从这样做之后,我们在 'Google Play Console'->'Android Vitals'->'ANRs & Crashes' 中的本机代码中的崩溃日志未正确符号化(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 控制台中没有发现任何崩溃报告符号问题?
编辑:NDK 21 RC1 应该可以解决这个问题。
这似乎与原生库在 APK 中保持未压缩有关。
通过在 gradle.properties
中添加以下选项,您可以禁用它:
android.bundle.enableUncompressedNativeLibs=false
您需要发布使用此选项构建的新 App Bundle。
我们最近更新了我们的应用程序以使用 Android App Bundle (aab) 并且还包括 arm64 本机库。
自从这样做之后,我们在 'Google Play Console'->'Android Vitals'->'ANRs & Crashes' 中的本机代码中的崩溃日志未正确符号化(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 控制台中没有发现任何崩溃报告符号问题?
编辑:NDK 21 RC1 应该可以解决这个问题。
这似乎与原生库在 APK 中保持未压缩有关。
通过在 gradle.properties
中添加以下选项,您可以禁用它:
android.bundle.enableUncompressedNativeLibs=false
您需要发布使用此选项构建的新 App Bundle。