Ich habe eine App, die nicht auf dem Markt ist (mit einem Debug-Zertifikat signiert), möchte aber bei jedem Absturz meiner Anwendung Absturzprotokolldaten abrufen. Wo finde ich ein Protokoll darüber, warum meine App abgestürzt ist?
Wenn Ihre App von anderen Personen heruntergeladen wird und auf Remote-Geräten abstürzt, sollten Sie sich eine Android-Fehlerberichtsbibliothek ansehen (auf die in diesem SO-Beitrag verwiesen wird ). Wenn es sich nur auf Ihrem eigenen lokalen Gerät befindet, können Sie Folgendes verwenden: LogCat.
Auch wenn das Gerät zum Zeitpunkt des Absturzes nicht mit einem Host-Computer verbunden war, wird durch Anschließen des Geräts und Ausgeben eines adb logcat
Befehls der gesamte Logcat-Verlauf heruntergeladen (zumindest in dem Maße, in dem dies der Fall ist) ist gepuffert, was normalerweise eine Menge Protokolldaten ist, es ist einfach nicht unendlich). Beantworten eine dieser Optionen Ihre Frage? Wenn nicht, können Sie versuchen zu klären, wonach Sie ein bisschen mehr suchen?
adb logcat
Verzeichnis aus, in dem sich adb befindet. Alternativ können Sie die SDK-Tools verwenden, die im Eclipse-Plugin enthalten sind$SDK_DIR/platform-tools/
. Um Fehler anzuzeigen:.\adb.exe logcat -v time *:E
Der Weg, dies zu tun, besteht darin, die
Thread.UncaughtExceptionHandler
Schnittstelle zu implementieren und sie zuThread.setDefaultUncaughtExceptionHandler()
Beginn Ihrer Aktivität zu übergebenonCreate()
. Hier ist die ImplementierungsklasseTopExceptionHandler
.Hinweis Wir lassen das defaultUEH des Android-Frameworks damit umgehen.
Registrieren Sie oben in Ihrer Aktivität eine Instanz der oben genannten Klasse wie folgt:
Dieser Handler speichert die Ablaufverfolgung in einer Datei. Beim
ReaderScope
nächsten Neustart wird die Datei erkannt und der Benutzer aufgefordert, sie per E-Mail an den Entwickler zu senden.Führen Sie den folgenden Code aus, um die Stapelverfolgung per E-Mail in eine E-Mail zu packen.
Sie können auch das ACRA-Fehlerberichtssystem verwenden. Fügen Sie einfach die Datei ACRA.jar in Ihre Projektbibliotheken ein und verwenden Sie das folgende Codeausschnitt, bevor Sie die Aktivierungsklasse für den Launcher deklarieren
oder Sie können dies von der Konsole aus versuchen: -
quelle
Dies ist von http://www.herongyang.com/Android/Debug-adb-logcat-Command-Debugging.html
Sie können adb verwenden:
quelle
Sie können dies über die Konsole versuchen:
Weitere Informationen zu dieser Option:
quelle
Wenn Sie Eclipse verwenden, stellen Sie sicher, dass Sie Debug verwenden und nicht ausführen. Stellen Sie sicher, dass Sie sich in der Debug-Perspektive befinden (oben rechts). Möglicherweise müssen Sie einige Male auf "Fortsetzen" (F8) klicken, damit das Protokoll gedruckt wird. Das Absturzprotokoll befindet sich im Logcat-Fenster unten. Doppelklicken Sie auf Vollbild und stellen Sie sicher, dass Sie nach unten scrollen. Sie sehen roten Text für Fehler, die Absturzverfolgung ist so etwas wie
Die wichtigen Teile für diesen sind
Diese sagen uns, dass es sich um eine Ausnahme außerhalb der Grenzen in Zeile 13 von main.java in der onCrate-Methode handelte.
quelle
Sie können Apphance verwenden. Dies ist ein plattformübergreifender Dienst (jetzt hauptsächlich Android, iOS mit anderen Plattformen auf dem Weg), mit dem jedes mobile Gerät (Android, iOS jetzt - andere in der Entwicklung) remote debuggen können. Es ist viel mehr als nur ein Crashlog, tatsächlich ist es viel mehr: Protokollierung, Meldung von Problemen durch Tester, Crashlogs. Die Integration dauert ca. 5 Minuten. Derzeit können Sie den Zugriff auf die Closed Beta beantragen.
Haftungsausschluss: Ich bin CTO von Polidea, einem Unternehmen hinter Apphance und Mitentwickler von Polidea.
Update: Apphance ist keine geschlossene Beta mehr! Update 2: Apphance ist als Teil des Angebots von http://applause.com verfügbar
quelle
libs
Verzeichnis stellen, wie in dieser SO-Antwort erläutert. Dieses Github-Commit zeigt die Änderungen an, die ich an meiner WorldMap-App vornehmen musste, um Apphance verwenden zu können.Hier ist eine andere Lösung für Crash Log.
Android Market hat Tool namens "Crash Collector"
Weitere Informationen finden Sie unter folgendem Link
http://kpbird.blogspot.com/2011/08/android-application-crash-logs.html
quelle
Sie können ACRA hieraus verwenden . Wenn Sie diese Bibliothek in Ihre Projekte aufnehmen und konfigurieren, können Sie (in Ihre E-Mail oder in Ihre GDCs) deren Absturzberichte erhalten. Entschuldigung für mein schlechtes Englisch.
quelle
Wenn Sie nach einem grundlegenden Tool zur Absturzberichterstattung suchen, versuchen Sie es mit Crashlytics .
Wenn Sie ein erweitertes Berichterstellungstool wünschen, klicken Sie auf Checkout Gryphonet . Es protokolliert alle aufgetretenen Abstürze zusammen mit der genauen Codezeile, die den Absturz verursacht hat, sowie automatisierten Markierungen, die Ihnen die Schritte anzeigen, die der Benutzer vor dem Absturz unternommen hat, und vieles mehr.
Viel Glück!
quelle
Verwenden Sie Acra Crash Reporter für Android App .. Acra lib
quelle
Ich habe diese Bibliothek erstellt, um alle Ihre Probleme zu lösen. Crash Reporter ist ein praktisches Tool, mit dem Sie alle Abstürze erfassen und lokal am Gerät anmelden können
Fügen Sie einfach diese Abhängigkeit hinzu und los geht's.
Finden Sie alle Ihre Abstürze im Gerät lokal und beheben Sie sie nach Belieben. Abstürze werden im leicht zu verfolgenden Datums- und Uhrzeitformat gespeichert. Außerdem bietet es eine API zum Erfassen protokollierter Ausnahmen mit der folgenden Methode.
quelle
Hier ist eine Lösung, mit der Sie alle Protokolle in einer Textdatei speichern können
quelle
Sie können auch Library Crashcatcher verwenden
quelle
Wenn Sie nur nach dem Absturzprotokoll suchen, während Ihr Telefon mit dem Computer verbunden ist, verwenden Sie die DDMS-Ansicht in Eclipse. Der Bericht befindet sich direkt in LogCat in DDMS, wenn Ihre App beim Debuggen abstürzt.
quelle
1) Schließen Sie das Telefon über USB an (mit aktivierten Developer Debugging-Optionen).
2) Öffnen Sie das Terminal und navigieren Sie zu Ihrem Android SDK (für Mac):
cd ~/Library/Android/sdk/platform-tools
3) Logcat aus diesem Verzeichnis (in Ihrem Terminal), um einen konstanten Protokollfluss (für Mac) zu generieren:
./adb logcat
4) Öffnen Sie Ihre abstürzende App, um Absturzprotokolle zu erstellen
5) Strg + C, um das Terminal anzuhalten und nach den Protokollen zu suchen, die der abstürzenden App zugeordnet sind. Es kann ungefähr so etwas sagen:
AndroidRuntime: FATAL EXCEPTION: main
quelle
Verwenden Sie diese Klasse basierend auf diesem POST als Ersatz für "TopExceptionHandler".
}}
..... .....
..... .....
..... .....
quelle
Versuchen Sie Carsh Log App von Android.
Verwenden Sie den Link , um die App herunterzuladen.
quelle