In Android Studio wird logcat nach dem Schließen der App bereinigt

132

Ich habe ein Problem mit meinem Logcat seit Update 1.2 Beta für Android Studio. Wenn ich meine App starte, protokolliert sie alles wie gewohnt. Dann komme ich an den Punkt, an dem meine App abstürzt und die App sagt: Leider wurde das Spiel gestoppt.

Nach ein paar Sekunden schließt Android diese Nachricht. In diesem Fall wird mein Logcat ebenfalls vollständig gelöscht, sodass ich kaum Zeit habe, den Fehler zu lesen. Ich habe einige Informationen zu einem Puffer gefunden, aber es scheint, dass Android Studio nicht die Möglichkeit hat, ihn zu erhöhen, abgesehen von der Tatsache, dass ich bezweifle, dass dies das Problem ist.

Etwas, das nützlich sein kann, ist, dass sich der Prozess nach dem Löschen und Füllen in Android.process.core ändert und die Meldung in meinem Logcat lautet:

04-13 10:28:13.394  12259-12265/android.process.acore D/dalvikvm    
Debugger has detached; object registry had 1 entries

Bearbeiten: Ich habe über Haltepunkte gelesen, daher wurde die Fokusanwendung auf Haltepunkte in Einstellungen-Erstellung, Ausführung, Deployment-Debugger deaktiviert, aber es hatte keine Auswirkungen.

Schwarzer Lotus
quelle
2
Wenn Sie den installierten Speicherort des ADB-Programms finden, können Sie es adb logcatvon Ihrem Terminal oder Befehlsfenster aus ausführen und optional in einen Pager, Grep, Tee oder was auch immer weiterleiten.
Chris Stratton
1
Ja, Sie können auch versuchen adb shell bugreport > log.txt, Arten von Protokollinformationen werden abgerufen, sobald der Befehl beendet ist.
lecker
@yummy hat vorerst das Beste für mich herausgearbeitet und hoffe immer noch, eine Lösung zu finden, da dies meiner Meinung nach nicht der beste Weg ist. Vielen Dank
Black Lotus
1
Ich habe keine Lösung gefunden, um die Protokolle nicht mit Android Studio 1.2 bereinigen zu lassen, aber eine einfache Lösung besteht darin, nicht auf die Schaltfläche zum Schließen (auf dem Gerät) zu klicken, wenn die App abstürzt. Somit haben Sie alle Protokolle und die Gründe, warum die Apps abgestürzt sind.
Chakir
@Jameltheone Die Nachrichten bleiben nur einige Sekunden auf dem Bildschirm. Dann wird der Absturzdialog selbst geschlossen. Also habe ich nicht wirklich die Kontrolle darüber.
Black Lotus

Antworten:

270

Ich hatte das gleiche Problem, sieht aber eher nach einer Funktion als nach einem Fehler aus:

In AndroidStudio scheint die Standardeinstellung für das Logcat-Fenster "Nur ausgewählte Anwendung anzeigen " (obere rechte Ecke des Logcat-Fensters) zu sein. Dabei wird das Protokoll des ausgewählten Prozesses angezeigt (standardmäßig Ihr aktueller Start). Wenn Ihre App während des Tests abstürzt, ist dieser Prozess abgeschlossen, und der Filter löscht das Protokoll.

Wählen Sie stattdessen "Filterkonfiguration bearbeiten ..." und richten Sie einen Filter für Ihre App ein , z.

  • Filtername: MyApp
  • Paketname: com.example.myapp (<< durch den Paketnamen Ihrer App ersetzen)

... und wählen Sie dann diesen Filter für zukünftige Läufe aus. Dadurch sollte das Protokoll auch nach dem Absturz der App für Sie da bleiben.

maxdownunder
quelle
Ich danke dir sehr. Ich habe den Fehler vor 2 Tagen herausgefunden! Jetzt weiß ich, wie ich den Fehler wirklich sehen kann. :)
Woppi
Sie sind ein RETTER, der versucht hat, das Protokoll zu kopieren und einzufügen, bevor es gelöscht wird. Ich dachte, es ist mein Telefon, weil sich andere Telefone normal verhalten.
Meister Fathi
Genau das, was mir gefehlt hat. Dies sollte die akzeptierte Antwort sein.
Fett
Hatte das gleiche Problem. Funktioniert perfekt.
Chandan Pednekar
59

Schalten Sie "Nur ausgewählte Anwendung anzeigen" auf "Keine Filter". Auf diese Weise können Sie die Logcat-Ausgabe eines Prozesses anzeigen, auch wenn dieser Prozess nicht ausgeführt wird.

Der Nachteil ist, dass Ihr Logcat mit mehr Spam aus anderen Prozessen gefüllt wird.

Brian Attwell
quelle
1
Um den Spam herauszufiltern, geben Sie den Paketnamen Ihrer eigenen App in die Suchleiste neben der Dropdown-Liste "Nur ausgewählte Anwendung anzeigen / kein Filter anzeigen" ein.
Computingfreak
24

Meine App stürzte ab und wurde neu gestartet. Ich hatte auch einige Probleme beim Lesen des Logcats, um zu wissen, was los war. Ich bemerkte dann, dass es im Dropdown-Menü neben dem Geräte-Dropdown so etwas wie "com.mypackage.myapp ('irgendeine Zahl')" gab, und als meine App abstürzte, gab es eine andere Option mit der Aufschrift "com.mypackage.myapp ( 'irgendeine Zahl') [TOT] " . Wenn Sie die Option "Dead" auswählen, wird der Logcat der vorherigen Instanz angezeigt.

Dead LogCat

ALourenco
quelle
Es erscheint, wenn es abstürzt.
ALourenco
Ich meinte auf Absturz. Die PID ändert sich, aber die tote Instanz wird nicht in der Liste angezeigt.
Karan Modi
20

Im Falle eines Absturzes sehen Sie die RunRegisterkarte am unteren Rand der IDE.

Sie können den Absturzgrund in diesem Teil sehen (auch in logcat clean case).

Hinweis: Wenn der oben genannte Trick nicht funktioniert, versuchen Sie, einen Absturz zu verursachen, und ziehen Sie sofort das mobile Kabel ab (wenn Sie das reale Gerät für den Test verwenden). Sie können den Fehler sehen, bevor er bereinigt wird.

Update: Wenn auch der obige Trick nicht funktioniert, versuchen Sie, das Telefon anzuschließen und abzunehmen, und hoffentlich ist das Problem behoben.

Update2: Wenn dies erneut nicht funktioniert, versuchen Sie, Catches zu machen und neu zu starten. Starten Sie dann das Debuggen erneut.

Update3: Versuchen Sie als letzten Weg, die App zu entfernen und erneut zu installieren, und starten Sie dann das Debuggen (wenn Sie den zu testenden Zustand nicht verlieren)

Amir Hossein Ghasemi
quelle
6

In Android Studio 2+

  1. Klicken Run

  2. Klicken Edit Configurations

  3. Wählen Sie im Run/Debug ConfigurationsFenster die MiscellaneousRegisterkarte

  4. Stellen Sie sicher, dass das Clear log before launchKontrollkästchen nicht aktiviert ist

Flot2011
quelle
4

Ich habe das gleiche Problem konfrontiert und dies ist die Lösung: -

1- Tools -> Android -> ADB-Integration aktivieren.

und jetzt können Sie den Logcat und die Abstürze wie gewohnt sehen

Ziad Gholmish
quelle
Meine ADB-Integration war leider schon aktiviert. Etwas, das sehr nützlich ist, ist, dass ich nach dem Löschen die folgende Meldung erhalte: 04-13 10: 28: 13.394 12259-12265 / android.process.acore D / dalvikvm ﹕ Debugger hat sich getrennt; Objektregistrierung hatte 1 Einträge
Black Lotus
@BlackLotus hast du dein Problem gelöst? Ich stelle das gleiche Problem hier
Hoo
Dies ist im neuen Android Studio nicht mehr gültig.
Hamzeh Soboh
4

Der Filter löscht das Protokoll, sobald die App abstürzt. Wählen Sie also "Filterkonfiguration bearbeiten" und erstellen Sie Ihren eigenen benutzerdefinierten Filter mit dem Filternamen. Dadurch wird das Protokoll mit Informationen gespeichert, auch wenn die App beschädigt ist.

Mohammed Nishar
quelle
1

Es ist 2018 und das kann immer noch passieren. Schließen Sie Android Studio und öffnen Sie es erneut.

streunend
quelle
0

Dieser Fehler scheint mit der neuen Version von Android Studio Version 1.2.2 behoben zu sein

Chakir
quelle
1
Der Fehler ist immer noch vorhanden, sogar in Android Studio 2.2.2, also denke ich, dass @maxdownunder mit der Annahme, dass es sich tatsächlich um ein ... "Feature" handelt, völlig richtig war
Aenadon
0

Ich hatte das gleiche Problem und keine der Antworten konnte mir helfen, bis ich merkte, dass meine App eine OutOfMemoryException verursachte. Das ist auch eine wahrscheinliche Grundursache.

Chisko
quelle