Logcat stürzt mit Fehler ab: unerwartetes EOF

Lesezeit: 5 Minuten

Benutzer-Avatar
Nö Kumado

Ich führe einige langwierige Berechnungen durch und ziemlich spät geht etwas schief. Ich habe versucht, Breakpoints zu verwenden, aber bisher ohne Erfolg. Also stecke ich in die Schleife a Log.d zu überwachen…

Aber ziemlich bald stürzt Logcat ab mit:

02-08 16:35:42.820 2936-3402/com.nohkumado.geneticsolving.full D/BaseC: 
    norm:BC sq:49.0 dis:0.0 con:50.0/BC sq:56.0 dis:4.0 con:94.0=1.4069148936170213

    read: unexpected EOF!

    --------- beginning of crash

und ich muss das Studio neu starten, um Logcat wieder zum Laufen zu bringen.

Ich habe nachgesehen, ob ich eine Einstellung für die Puffergröße für Logcat finden kann, aber bisher habe ich nichts gefunden. Was kann getan werden?

  • Der Fragesteller verschmilzt zwei Dinge, die nichts miteinander zu tun haben. Die Meldung „Beginn des Absturzes“ bedeutet, dass eine Android-App abgestürzt ist, nicht Logcat. Das “lesen: unerwartetes EOF!” tatsächlich vom logcat-Prozess stammt und darauf hinweist, dass der logcat-Prozess seine Verbindung zum logd-Prozess verloren hat.

    – satur9nine

    25. November 2019 um 21:56 Uhr

  • Nun, die App ist nicht abgestürzt, sie hat nur nicht konvergiert …. aber ich konnte es wegen der Pufferbegrenzung des Logcats nicht sehen …

    – No Kumado

    25. November 2019 um 22:40 Uhr

Benutzer-Avatar
Suragch

Vollständigere Antwort

Die akzeptierte Antwort hat bei mir nicht funktioniert. Anstatt den Logger-Puffer auszuschalten, habe ich ihn auf die maximale Größe erhöht.

  1. Aktivieren Sie die Entwickleroptionen in Ihrem Emulator oder Gerät (nicht Android Studio), falls es noch nicht aktiviert wurde: Gehen Sie in Ihrem Emulator oder Gerät zu Einstellungen > System > Info (emuliertes Gerät) und klicken Sie auf Build-Nummer 7 mal.
  2. Gehe zu Einstellungen > System > Entwickleroptionen > Logger-Puffergrößen und wählen Sie einen höheren Wert.

Geben Sie hier die Bildbeschreibung ein

  1. Ich musste auch den Emulator neu starten.

Das ursprüngliche Problem tritt also anscheinend auf, weil der Protokollpuffer des Geräts für eine längere Protokollierung gefüllt wird. Durch Erhöhen der Puffergröße können Sie mehr in einer einzigen Protokollierungssitzung protokollieren.

  • Damit kann ich das Problem an einem normalen Arbeitstag vermeiden. Für mich gibt es eine Ausnahme: Verwenden eines Samsung-Telefons in einer Umgebung mit vielen Bluetooth-Geräten. Samsung hat beschlossen, jeden Bluetooth-Scan auf Systemebene zu protokollieren, und anscheinend reichen 16 MB dafür nicht aus. Es wird immer noch 4 oder 5 Mal am Tag passieren, wenn ich über 30 Bluetooth-Geräte um mich herum habe.

    – reTs

    25. Juli 2018 um 10:53 Uhr

  • Der logd-Puffer ist ein Ringpuffer, eine Änderung seiner Größe sollte keinen messbaren Einfluss darauf haben, ob die Verbindung zwischen logcat und logd unterbrochen wird. Es ändert lediglich, wie viel Protokollierungsverlauf im Speicher vorhanden ist. Es ist sehr unwahrscheinlich, dass dies das Problem behebt.

    – satur9nine

    25. November 2019 um 21:59 Uhr

  • @satur9nine, ich kann nicht sagen, ob es das Problem auf der zugrunde liegenden Ebene behebt, aber es hat mein Problem behoben, indem es den Absturz verhindert und die Anzeige weiterer Protokollmeldungen ermöglicht hat.

    – Suragch

    26. November 2019 um 2:20 Uhr

  • Nachdem ich ein TWRP-Backup von einem Moto G5 Plus auf ein anderes übertragen hatte, bestand mein Logcat-Puffer aus einigen Ereignissen von vor Monaten, einigen Ereignissen von heute, gefolgt von read: unexpected EOF!. Das Erhöhen auf 16M behebt das Problem und lässt die monatealten Ereignisse verschwinden.

    – nyanpasu64

    18. Februar 2020 um 10:44 Uhr

Benutzer-Avatar
Rishabh

Einstellung versuchen Logger-Puffergrößen zu aus unter Einstellungen->Entwickleroptionenauf Ihrem Gerät/Emulator. Dies könnte passieren, weil Logger-Puffer ist so konfiguriert, dass Protokolle in begrenzter KB nur zu einem bestimmten Zeitpunkt angezeigt werden. Der nächste Satz von Protokollen wird erst angezeigt, wenn der vorherige Puffer gelöscht wurde.

  • Tatsächlich hatte das Logcat auf der Tablet-Seite eine feste Länge!

    – No Kumado

    14. Februar 2018 um 14:04 Uhr

  • Ich habe es ausgeschaltet, jetzt sehe ich überhaupt keine Protokolle mehr. (Samsung-Note 8). Ich glaube nicht, dass das eine Lösung für alle ist

    – siehe da

    26. Februar 2019 um 22:45 Uhr

  • Ich habe es ausgeschaltet, aber ich habe immer noch den Fehler als Frageöffner.

    – Nisim Naim

    3. Juli 2019 um 11:08 Uhr

  • das hat bei mir funktioniert (mit dem Emulator). das problem ist erst vor kurzem aufgetreten.

    – Lassi Kinnunen

    18. Dezember 2019 um 7:46 Uhr

  • Dies sollte keine genehmigte Antwort sein, es ist besser, den Puffer zu erhöhen, um zu verhindern, dass er leer wird, anstatt ihn auf den echten Geräten auszuschalten. Dies kann jedoch geräteabhängig / abhängig von der Android-Betriebssystemversion sein.

    – Sergej Dryganets

    10. Juni 2020 um 17:36 Uhr

In den Entwickleroptionen können Sie die Logger-Puffergröße auf maximal 16 MB einstellen.

(Einstellung > System > Entwickleroptionen > Logger-Puffergrößen)

Wenn Sie mehr benötigen, können Sie es mit adb einstellen. Zum Beispiel können Sie es auf 100M setzen:

adb logcat -G 100M

Dieses von Ihnen gepostete Protokoll besagt, dass die App abstürzt (wenn auch nicht auf die übliche Weise mit einem Stacktrace, aber es stürzt ab), nicht das Logcat. Hast du die App ausgewählt und im Logcat den Filter auf “Ausgewählte Anwendung anzeigen” gesetzt? Wenn ja, stellen Sie den Filter einfach auf “Kein Filter” und Sie sehen alle Protokolle Ihrer App.

Auch für den Fall, dass Sie den Logcat aus irgendeinem Grund neu starten müssen, können Sie, anstatt Android Studio neu zu starten, die folgenden Befehle ausführen, die adb und schließlich auch Ihren Logcat neu starten:

adb kill-server
adb start-server

Benutzer-Avatar
Shubham Talekar

verwenden Sie den folgenden Befehl:

adb logcat -G 20M

Benutzer-Avatar
Glücklicher Agarwal

  1. Entfernen Sie alle log.d und starten Sie Android Studio neu und gehen Sie einfach zu Datei -> Caches ungültig machen / Neustart.
  2. Ihre Geräteeinstellungen->Entwickleroptionen
  3. Größe des Protokollpuffers ändern

Benutzer-Avatar
Mike S.

Die Empfehlungen haben bei mir nicht funktioniert. Ich habe endlich diese Einstellung geändert:

Menü „Ausführen“, Menüeintrag „Konfigurationen bearbeiten“, dann auf der linken Seite „Android App/App“ und auf der rechten Seite den Reiter „Verschiedenes“, und schließlich „Logcat: Log vor dem Start löschen“ aktivieren.

Das hat natürlich Nebenwirkungen, aber zumindest kann ich die Log-Ausgabe wieder sehen.

  • Es heißt „Verschiedenes“, nicht „Michelangelo“ 😛

    – Wladimir Kattsyn

    23. November 2021 um 12:22 Uhr

1335060cookie-checkLogcat stürzt mit Fehler ab: unerwartetes EOF

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy