Moh*_*min 20 android stack-trace dexguard crashlytics-android google-fabric
当我在项目中启用Dexguard时,我遇到了来自Fabric Crashlytics的崩溃报告的问题.
我在项目中启用了Dexguard,效果非常好.然后我按照本页中的说明添加了所提到的配置,以使Fabric对我的堆栈跟踪进行去混淆并显示正确的崩溃报告.以下是我在主模块中应用fabric和dexguard插件的方法build.gradle:
apply plugin: 'com.android.application'
apply plugin: 'dexguard'
apply plugin: 'io.fabric'
Run Code Online (Sandbox Code Playgroud)
以下是我proguard-project.txt文件中的配置:
# Fabric
#############################################################################
-keepattributes *Annotation*,SourceFile,LineNumberTable
-keep public class * extends java.lang.Exception
-keepresourcexmlelements manifest/application/meta-data@name=io.fabric.ApiKey
-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**
#############################################################################
Run Code Online (Sandbox Code Playgroud)
以下是我proguard-project.txt在发布版本中的使用方法:
buildTypes{
debug{
proguardFile getDefaultDexGuardFile('dexguard-debug-shrink.pro')
proguardFile 'proguard-project.txt'
}
release{
proguardFile getDefaultDexGuardFile('dexguard-release.pro')
proguardFile 'proguard-project.txt'
proguardFile 'dexguard-project.txt'
if(new File("$projectDir/../local.properties").exists()){
signingConfig signingConfigs.release
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是当在发布版本中遇到崩溃时,发生崩溃的文件名将丢失,但其他所有内容都正常工作,并且堆栈跟踪几乎是可以理解的.这是一个崩溃报告示例:
正如您在崩溃报告中看到的那样,堆栈跟踪中只缺少文件名.行号和方法名称等其他描述完全正常.
虽然使用完整的方法名称ir.X.ui.XMainActivity.throwSomething和前面的行号Unknown Source,但我可以得出错误发生的文件名,我希望我的堆栈跟踪显示文件名并完全描述自己.我尝试了很多选项和许多试验和错误,但问题仍然存在.
有什么我想念的吗?我怎么解决这个问题?
我正在使用8.1.0.7Dexguard版本1.21.7,Fabric插件版本2.9.0和Crashlytics库版本.
我将Fabric插件更新为版本1.25.1,将Crashlytics库更新为版本,2.9.1但问题仍然存在.
我将Fabric插件更新为版本1.25.2,构建工具版本27.0.3和gradle插件版本,3.1.0但问题仍然存在.
Hon*_*hah 10
您可以针对反混淆的崩溃报告采取以下步骤.正如firebase crashlytics文档引用的那样
1.要保留Crashlytics对可读崩溃报告的信息,请将以下行添加到配置文件中:
-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable
-keep public class * extends java.lang.Exception
Run Code Online (Sandbox Code Playgroud)
2.要让Crashlytics自动上传ProGuard或DexGuard映射文件,请从配置文件中删除此行:
-printmapping mapping.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2056 次 |
| 最近记录: |