Fabric Crashlytics 报告显示了一些字母,而不是我的 Android 应用程序的 类 名称

Fabric Crashlytics reports display some letters instead of classes names of my Android App

在 Fabric Crashlytics 报告中,我看到一些字母而不是 classes 名称。例如,当我看到 "MainActivity" 时,我知道 MainActivity.java 中发生了崩溃,但现在我看到字母 "a""e""w" 而不是 class 名称,我无法理解class 崩溃发生了!

我该如何解决这个问题?

可能您正在使用 proguard 或 dexguard 来混淆您的代码,因此当 crashlytics 报告它时,它使用符号而不是实际方法和 class 名称来报告它。

  1. 如果您希望将 proguard 与 crashlytics 一起使用,请按照此文档 here 添加必要的 proguard 规则,或者通过将以下内容添加到您的 proguard-rules 来简单地排除 crashlytics 上的 proguard文件:

    -keep class com.crashlytics.** { *; }
    -dontwarn com.crashlytics.**
    

建议添加此处提到的所有规则以获得更好的稳定性。

  1. 如果您不知道什么是 Proguard 或不想使用它,请转到应用的 build.gradle 文件并将行更改为:

    minifyEnabled false
    

编码愉快!

您必须上传混淆代码的映射文件。这样,堆栈跟踪将被取消混淆。这是官方的documentation