Ich habe einen Absturz in meiner App, nachdem ich Proguard benutzt und mit einem neuen Schlüssel signiert und exportiert habe.
Derselbe Code funktioniert im normalen Eclipse-Debug-Modus.
Ich lese überall, ich sollte die mapping.txt verwenden, um den Code zu finden, der fehlgeschlagen ist. Aber wie mache ich das, ich habe das jetzt 2 Stunden lang googlen und keine Antwort funktioniert.
Ich unterschreibe jetzt die apk-Datei mit dem debug.keystore und benutze das Standardpasswort "android".
Jemand sagt, ich sollte Android: debuggable="false" in meinem Application-Tag zu machen
Proguard verschleiert meine Debug-Session in Eclipse.
Stimmt das?
Jede Hilfe wäre ätzend
auf der Proguard Android Developer-Seite Ich finde keine Möglichkeit, dies zu tun
"Wenn Ihr verschleierter Code einen Stack-Trace ausgibt, werden die Methodennamen verschleiert, was das Debugging ha"
machtWas "Stack-Trace" und von wo?
Auf der Seite Proguard-Handbuch kann ich keine Erklärung finden
Nicht in Eclipse.
Außerhalb von Eclipse verwenden Sie Retrace
function in ProGuard. Sie benötigen außerdem den Dump-Stacktrace und mapping.txt
, die Sie im Verzeichnis proguard
Ihres Projekts gefunden haben, um den verschleierten Stacktrace umzukehren. Denken Sie daran, bei jeder Bereitstellung einer neuen Version Ihrer Android-App eine Kopie von mapping.txt
zu speichern (vorzugsweise außerhalb des Arbeitsbereichs des Projekts).
Sie können den Stack-Trace am einfachsten mit der Proguard-GUI de-obfuscieren. Sie finden dies mit Ihrem Android SDK.
%Vor%
Nachdem Sie sich das angeschaut haben, zeigt die Dokumentation von proguard auf der Android-Entwickler-Website, wie man einen Stack-Trace entschlüsselt, aber nicht, wie man den Stack-Trace abruft.
Ссылка (siehe Abschnitt Entschlüsselung von verschleierten Stapelspuren)
Ich habe versucht, einen Logcat-Dump wie folgt zu verwenden: -
%Vor%Leider funktioniert das nicht, aber es funktioniert, wenn ich die E / AndroidRuntime (14584) vom Anfang jeder Zeile entferne, funktioniert es:
%Vor%So wie die Dokumentation besagt, benötigen Sie eine Stack-Trace-Datei, und es scheint keinen Hinweis darauf zu geben, eine gültige Stack-Trace-Datei vom Gerät zu erhalten.
Die einzige Möglichkeit, die ich gesehen habe, ist, einen benutzerdefinierten Ausnahmebehandler bereitzustellen und den Stack-Trace auf die SD-Karte zu schreiben.
Für Mac-Benutzer verwenden Sie den folgenden Code, um den /Users/XYZ/Library/Android/sdk/tools/proguard/bin/proguardgui.sh
Glückliches Debugging!
Laden Sie das neueste Programm von der Proguard-Seite herunter. Die aktuellste Version ist proguard4.7
Ersetzen Sie den Ordner "bin" und "lib" von C:\Program Files (x86)\Android\android-sdk\tools\proguard
durch die zuletzt heruntergeladenen Proguard-Ordner.
Überprüfen Sie den SDK-Speicherort in Eclipse auf Leerzeichen und wechseln Sie zu Window & gt; Einstellungen & gt; Android. Wenn Leerzeichen vorhanden sind, ersetzen Sie sie durch:
%Vor% Überprüfen Sie, ob sich die Datei proguard.cfg im Stammordner Ihres Projekts befindet, und fügen Sie in der Datei project.properties von android project proguard.config=proguard.cfg
hinzu.
Exportiere nun dein Projekt, um die apk zu erhalten.