내 컴퓨터에서 가끔씩 내 컴퓨터에서 충돌 게시를 빌드하고 서명 한 내 앱, logcat에서 널 포인터 예외에 대한 스택 추적을 엽니 다.하지만 정확한 행 번호를 찾을 수 없습니까? 그 말 때문에 어디 이제까지 내가 더 줄 번호를 볼 수 없습니다 내 응용 프로그램 패키지가 보시다시피 (알 수없는 소스) 예를 들어 몇 줄이Android 앱 크래시 : 행 번호 대신 알 수없는 소스가있는 이유
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)
처럼 대신 알 수없는 소스는 말한다.
다음은이 프로젝트의 내 그라디언트 구성입니다.
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')
}
응용 프로그램이 서명 된 빌드 변형을 사용하고있었습니다. 나는
retrace.bat|retrace.sh [-verbose] mapping.txt [<stacktrace_file>]
이 클래스 이름이 더 표시 한 후
하지만 여전히 줄 번호 구문
다음 사용하여 제대로 추적을 읽는 난독 명령을 사용하여? 라인 번호가 누락되는 원인이 정확히 여기에 무엇이 있는지 궁금합니다. ?? 내 코드에서 줄 번호를 표시하고 게시 준비를 할 수있는 추적을 얻으려면 어떻게해야합니까?
디버그 모드에서 앱을 실행 해보고 오류를 반복 해 보았습니까? 코드가 난독 화되어 최소화되었으므로 알 수없는 소스를 얻습니다. –
디버그에서는 아직 재현 할 수 없지만 반대의 작업을 수행하고 정확한 줄을 표시하지 않는 retrace 명령이 있습니까? – Ahmed
그건 당신이 deobfuscate하는 방법입니다, 그렇습니다. 그러나 코드가 여전히 축소되어 있으므로 줄 번호를 선택하는지 확신 할 수 없습니다. 개발자 콘솔에서이 추적을 받고 있습니까? https://support.google.com/googleplay/android-developer/answer/6295281 –