简体   繁体   English

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

[英]How to debug a Flutter app's crash from the provided stack trace in Google Play Console?

I have published a Flutter app on Play Store that reports crashes from time to time.我在 Play Store 上发布了一个 Flutter 应用程序,该应用程序不时报告崩溃。 To build it for release, I used obfuscation as described here with the command:为了构建它以供发布,我使用了如下命令中所述混淆:

flutter build apk --obfuscate --split-debug-info=build/app/outputs/symbols

Now in Play Console I get a stack trace from an occurring crash like:现在在 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>

where 'package.name' is the package name of my app.其中“package.name”是我的应用程序的 package 名称。

How do I deobfuscate/symbolize this stack trace?我如何去混淆/符号化这个堆栈跟踪?

I already tried using the flutter symbolize command for the appropriate architecture, as recommended:我已经尝试使用 flutter symbolize 命令来获得合适的架构,推荐如下:

flutter symbolize -i err.txt -d app.android-arm64.symbols

but it just prints again the err.txt file (the stack trace).但它只是再次打印 err.txt 文件(堆栈跟踪)。

Is there something I am missing in the whole process of debugging Flutter crash reports on Android?在调试 Android 上的 Flutter 崩溃报告的整个过程中,我是否遗漏了什么?

I also had the same problem.我也有同样的问题。 My crash stack like:我的崩溃堆栈如下:

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)

I use flutter symbolize command.but it just prints again the error.txt file.我使用 flutter 符号化命令。但它只是再次打印 error.txt 文件。

I haven't found an answer yet.我还没有找到答案。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM