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 名称来报告它。
如果您希望将 proguard 与 crashlytics 一起使用,请按照此文档 here 添加必要的 proguard 规则,或者通过将以下内容添加到您的 proguard-rules
来简单地排除 crashlytics 上的 proguard文件:
-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**
建议添加此处提到的所有规则以获得更好的稳定性。
如果您不知道什么是 Proguard 或不想使用它,请转到应用的 build.gradle
文件并将行更改为:
minifyEnabled false
编码愉快!
您必须上传混淆代码的映射文件。这样,堆栈跟踪将被取消混淆。这是官方的documentation
在 Fabric Crashlytics 报告中,我看到一些字母而不是 classes 名称。例如,当我看到 "MainActivity" 时,我知道 MainActivity.java 中发生了崩溃,但现在我看到字母 "a" , "e" 或 "w" 而不是 class 名称,我无法理解class 崩溃发生了!
我该如何解决这个问题?
可能您正在使用 proguard 或 dexguard 来混淆您的代码,因此当 crashlytics 报告它时,它使用符号而不是实际方法和 class 名称来报告它。
如果您希望将 proguard 与 crashlytics 一起使用,请按照此文档 here 添加必要的 proguard 规则,或者通过将以下内容添加到您的
proguard-rules
来简单地排除 crashlytics 上的 proguard文件:-keep class com.crashlytics.** { *; } -dontwarn com.crashlytics.**
建议添加此处提到的所有规则以获得更好的稳定性。
如果您不知道什么是 Proguard 或不想使用它,请转到应用的
build.gradle
文件并将行更改为:minifyEnabled false
编码愉快!
您必须上传混淆代码的映射文件。这样,堆栈跟踪将被取消混淆。这是官方的documentation