【问题标题】:Wrong line number google play crash report错误的行号谷歌播放崩溃报告
【发布时间】:2021-05-06 07:26:34
【问题描述】:

我有这样的谷歌播放崩溃

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 签名的 App Bundle

根据This App Bundle 中无需上传映射文件到控制台

为什么行号不正确?

我也是

添加这个

-keepattributes SourceFile,LineNumberTable

-renamesourcefile 属性源文件

proguard-rules.pro 中的行

为什么行号不正确?

【问题讨论】:

  • 一个愚蠢的问题:您是否有可能查看您当前分支的SourceFile 而不是您已上传且现在在 Play 商店中的版本?而且,如果您已经发布了多个版本的应用,则并非所有人都会将您的应用更新到最新版本。
  • 在使用 R8 时,我在 Logcat 中的堆栈跟踪得到了同样的结果。曾经与 Proguard 完美配合。

标签: android proguard


【解决方案1】:

我得到了正确的 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
    }
}

【讨论】:

  • 在发布可调试后,Play商店不允许在Playstore上上传应用程序和解决方案?
【解决方案2】:

根据 Android 文档,

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

所以每次推送新版本时都需要找到mapping.txt文件并上传到google play控制台。

您可以在 Android 开发者指南中找到有关同一 here 的更多信息。

【讨论】:

  • 在应用程序包中已包含mapping.txt 文件
【解决方案3】:

要调试 android 应用,最好先在 build.gradle 上关闭 minify,这样如果从 logcat Android Studio 中单击,您的错误可能会直接显示在错误代码上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-27
    • 1970-01-01
    • 2017-03-05
    • 2013-09-07
    • 2021-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多