如何从 Google Play Console 中提供的堆栈跟踪调试 Flutter 应用程序的崩溃?

Whi*_*ash 10 android crash-reports debug-symbols flutter

我在 Play Store 上发布了一个 Flutter 应用程序,该应用程序时不时地报告崩溃。为了构建它以供发布,我使用了如下命令进行混淆:

flutter build apk --obfuscate --split-debug-info=build/app/outputs/symbols
Run Code Online (Sandbox Code Playgroud)

现在,在 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>
Run Code Online (Sandbox Code Playgroud)

其中“package.name”是我的应用程序的包名称。

如何反混淆/符号化该堆栈跟踪?

我已经尝试按照建议使用 flutter symbolize 命令来实现适当的架构:

flutter symbolize -i err.txt -d app.android-arm64.symbols
Run Code Online (Sandbox Code Playgroud)

但它只是再次打印 err.txt 文件(堆栈跟踪)。

在Android上调试Flutter崩溃报告的整个过程中我是否遗漏了一些东西?

Miz*_*izz 0

我也有同样的问题。我的崩溃堆栈如下:

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)
Run Code Online (Sandbox Code Playgroud)

我使用 flutter symbolize 命令,但它只是再次打印 error.txt 文件。

我还没有找到答案。