gpt4 book ai didi

安卓应用程序崩溃 : Why there is (Unknown Source) instead of line number

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:21:06 26 4
gpt4 key购买 nike

我构建并签名发布的应用程序偶尔会在我的机器上崩溃,在 logcat 中我打开堆栈跟踪以查找空指针异常。但我无法找到确切的行号?因为它说(未知来源)例如有些行看起来像这样

   Caused by: java.lang.NullPointerException
at me.com.myapplication.a.i.d(Unknown Source)
at me.com.myapplication.MainActivity.onResume(Unknown Source)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1210)

如您所见,只要有我的应用程序包,我就看不到行号,而是显示未知来源。

这是我对这个项目的 gradle 配置。

apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"

defaultConfig {
applicationId "me.com.myappliaction"
minSdkVersion 8
targetSdkVersion 21
versionCode 6
versionName "2.0"
}

signingConfigs {
signed {
storeFile file('../keystore/my.keystore')
storePassword 'xxxxxx'
keyAlias 'xxxxx'
keyPassword 'xxxxxx'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}

signed {
debuggable false
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.signed
}

}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile project(':mycomponent')
}

该应用程序使用的是已签名的构建变体。我使用 proguard 命令使用以下语法正确读取跟踪

retrace.bat|retrace.sh [-verbose] mapping.txt [<stacktrace_file>]

在这个类名显示得更好但仍然没有行号?我想知道这里究竟有什么问题导致行号丢失??我怎样才能获得在我的代码中显示行号的跟踪,并且仍然能够让它为发布做好准备?

最佳答案

为了在 ProGuard 构建后保留调试信息,您需要添加以下配置(到您的 proguard-rules.pro 文件):

-keepattributes SourceFile,LineNumberTable
# rename the source files to something meaningless, but it must be retained
-renamesourcefileattribute ''

关于安卓应用程序崩溃 : Why there is (Unknown Source) instead of line number,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38024139/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com