Moja aplikacja, którą zbudowałem i podpisałem, by czasami publikować awarie na moim komputerze, w logcatie otwieram stos stosu dla wyjątku wskaźnika pustego. Ale ja jestem nie jesteś w stanie zlokalizować dokładnych numerów linii? bo to powiedzieć (Unknown Source) na przykład niektóre linie wyglądają jak tegoAwaria aplikacji na Androida: dlaczego jest (Nieznane źródło) zamiast numeru wiersza
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)
Jak można zobaczyć, gdzie jak dotąd nie jest mój pakiet aplikacji nie widzę numery linii zamiast mówi nieznanego źródła.
Oto moja konfiguracja gradle dla tego projektu.
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')
}
Aplikacja korzystała z podpisanego wariantu budowy. użyłem komendy PROGUARD czytać ślad prawidłowo używając następującej składni
retrace.bat|retrace.sh [-verbose] mapping.txt [<stacktrace_file>]
po to nazwy klas są pokazane lepiej, ale nadal nie ma numerów wierszy? Zastanawiam się, co dokładnie jest tutaj nie tak, co powoduje, że brakuje numerów linii? Jak mogę uzyskać ślad, który pokazuje numery linii w moim kodzie, a mimo to mogę przygotować go do opublikowania?
Czy próbowałeś uruchomić aplikację w trybie debugowania i zrobić wszystko, aby powtórzyć błąd? Otrzymasz nieznane źródło, ponieważ kod jest zaciemniany i minimalizowany. –
Nie można odtworzyć w debugowaniu, ale czy polecenie powrotu, którego użyłem, nie miało na celu odwrotności i pokazania dokładnych linii? – Ahmed
W ten sposób rozjaśniasz, tak, jednak nie jestem pewien, że odbiera numery linii, ponieważ kod jest nadal zminimalizowany. Czy otrzymujesz ten ślad z konsoli programisty? https://support.google.com/googleplay/android-developer/answer/6295281 –