错误的行号谷歌播放崩溃报告



我有类似的谷歌播放崩溃

java.lang.NullPointerException: 
at java.util.Objects.requireNonNull (Objects.java:109)
at f0.k.e.b.b.a.<init> (SourceFile:1)
at com.activities.galleryscan.ScanBarcodeFromFileActivity$b.g (SourceFile:28)
at h0.r.o.a.a.d (SourceFile:3)

这里的行号SourceFile:28不正确是为什么?

我上传了与proguard签署的应用程序捆绑包

根据此,无需在应用程序包中将映射文件上传到控制台

即使这样行号也不正确为什么?

我也是

添加这个

-keepattributesSourceFile,LineNumberTable

-renamesourcefileattribute SourceFile

proguard-rules.pro中的行

即使这样行号也不正确为什么?

我为Debug得到了正确的行号,为Release得到了不正确的行号。

如果使用debuggable=false指定构建配置,则R8会生成不正确的行号。

要使其正确工作,请设置debuggable=true例如

buildTypes {
debug {
debuggable true
minifyEnabled true
proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
signingConfig signingConfigs.debug
}
release {
debuggable true
minifyEnabled true
proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
}
}

此解决方案适用于

如果您有多个模块的proguard-rules.pro文件,则添加

这行在每个proguard-rules.pro文件中

-keepattributesSourceFile,LineNumberTable

-renamesourcefileattribute源文件

根据Android文档,

R8混淆代码后,理解堆栈跟踪很困难(如果不是不可能的话(,因为类和方法的名称可能已经更改。除了重命名,R8还可以更改堆栈跟踪中的行号,以在写入DEX文件时实现额外的大小节省。幸运的是,R8每次运行时都会创建一个mapping.txt文件,其中包含映射到原始名称的模糊类、方法和字段名称。此映射文件还包含将行号映射回原始源文件行号的信息。R8将文件保存在<module-name>/build/outputs/mapping/<build-type>/目录中。

所以你需要找到mapping.txt文件,并在每次推送新版本时将其上传到谷歌播放控制台中。

你可以在android开发者指南上找到更多关于相同的信息。

相关内容

  • 没有找到相关文章

最新更新