我在 Play Store 上发布了一个 Flutter 应用程序,它会不时报告崩溃。为了发布它,我使用了 here 中描述的混淆。使用命令:
flutter build apk --obfuscate --split-debug-info=build/app/outputs/symbols
现在在 Play Console 中,我从发生的崩溃中获得堆栈跟踪,例如:*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.package.name <<<
backtrace:
#00 pc 00000000000744b0 /apex/com.android.runtime/lib64/bionic/libc.so (abort+160)
#00 pc 00000000002bc350 /data/app/com.package.name-CelqfOPR1qgCAOmLM1XLVg==/split_config.arm64_v8a.apk!lib/arm64-v8a/libflutter.so (offset 0x5cc000)
#00 pc 00000000002b29c0 /data/app/com.package.name-CelqfOPR1qgCAOmLM1XLVg==/split_config.arm64_v8a.apk!lib/arm64-v8a/libflutter.so (offset 0x5cc000)
#00 pc 0000000000000001 <unknown>
其中 'package.name' 是我的应用程序的包名称。我如何去混淆/符号化这个堆栈跟踪?
我已经尝试过使用 flutter symbolize 命令进行适当的架构,如推荐的那样:
flutter symbolize -i err.txt -d app.android-arm64.symbols
但它只是再次打印 err.txt 文件(堆栈跟踪)。在Android上调试Flutter崩溃报告的整个过程中我是否缺少一些东西?
最佳答案
我也有同样的问题。
我的崩溃堆栈如下:
Fatal Exception: java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextNode(HashMap.java:1441)
at java.util.HashMap$EntryIterator.next(HashMap.java:1475)
at java.util.HashMap$EntryIterator.next(HashMap.java:1473)
at h.d.d.w.m.g$a.e(:29)
at h.d.d.w.m.g$a.c(:2)
at h.d.d.e.p(:34)
at h.d.d.e.q(:8)
at h.d.d.e.m(:5)
at h.d.d.e.l(:13)
at h.f.a.a.x(:7)
at h.f.a.a.r(:91)
at h.f.a.a.j()
at h.f.a.a$e.run(:45)
我使用 flutter 符号化命令。但它只是再次打印 error.txt 文件。我还没有找到答案。
关于android - 如何从 Google Play 控制台中提供的堆栈跟踪中调试 Flutter 应用程序的崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65667849/