Logcat zeigt meine Protokollaufrufe nicht an

114

Ich bin ein absoluter Neuling in der Android-Programmierung und wollte lernen, wie ich meine Apps debugge. Ich kann meine Log.i | d | v-Aufrufe nicht in LogCat anzeigen lassen.

Hier ist der Code, den ich verwende. Wie Sie sehen, habe ich eine LOG_TAG-Konstante definiert, kann sie aber im LogCat nicht finden. Ich habe auch android.util.Log importiert UND ich habe sichergestellt, dass ich in meinem AndroidManifest "debuggable" auf TRUE gesetzt habe.

Ich habe auch http://developer.android.com/reference/android/util/Log.html überprüft, ohne Glück, dieses Problem zu lösen.

Was mache ich falsch? Suche ich überhaupt am richtigen Ort? Ich habe versucht, die DDMS- und Debug-Perspektive auch ohne Glück zu verwenden. Jede Hilfe für diesen Noob wäre sehr dankbar. Vielen Dank.

Meine Umgebung: Windows XP IDE = Eclipse Version: 3.6.1, Build-ID: M20100909-0800 Emulator = Verweis auf Android SDK 2.1 API 7

// sehr einfacher HELLO World Code mit ein paar Log.i Aufrufen

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class debugger extends Activity {
    private static final String LOG_TAG = "debugger";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        Log.i(LOG_TAG, "line 13");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Log.i(LOG_TAG, "CREATING NOW");
    }
}
Cavachon
quelle
Es sieht nicht so aus, als ob Sie etwas falsch machen. Sind Sie sicher, dass Ihre Aktivität gestartet wird? Haben Sie Filter in der Logcat-Ansicht festgelegt? Haben Sie die Befehlszeilenversion von logcat ausprobiert? (adb logcat)
Cheryl Simon
Ja, habe die Befehlszeile ausprobiert und in eine txt-Datei ausgegeben und konnte sie immer noch nicht finden. Ich weiß, dass die Aktivität gestartet wurde, weil im Emulator die Meldung "Hallo Welt" angezeigt wird. Ich habe versucht, den Logcat mit und ohne Filter anzusehen und hatte immer noch kein Glück.
Cavachon
Probieren Sie die Befehlszeile adb logcat aus und filtern Sie zuerst nichts. Ich bin mir ziemlich sicher, dass Ihr Code funktioniert und in das Protokoll gedruckt wird.
Heikki Toivonen
Funktioniert LogCat überhaupt? Sehen Sie beispielsweise Protokolleinträge von anderen Apps (z. B. System-Apps)?
Vit Khudenko
Es könnte gerätespezifisch sein. Manchmal müssen wir Protokolle aus dem versteckten Menü des Telefons
aktivieren.

Antworten:

143

Stellen Sie bei Verwendung von Eclipse in der DDMS-Perspektive sicher, dass das richtige Gerät (wahrscheinlich Emulator-xxxx) ausgewählt und hervorgehoben ist. Nur dann erhalten Sie die Logcat-Ausgabe in der Logcat-Ansicht.

Außerdem ist das Android-Plugin etwas eigenartig und zeigt manchmal nur die letzte Zeile in der Logcat-Ansicht an. Versuchen Sie in diesem Fall, das Protokoll zu löschen. Danach sollten Sie alle Protokolleinträge erneut erhalten (funktioniert bei mir trotzdem).

ddewaele
quelle
Ja, alle Probleme, die ich auch hatte. Wenn Sie in der Logcat-Ansicht scrollen, wird mit zukünftigen Updates nicht automatisch gescrollt, bis Sie wieder nach unten scrollen.
Mike Yockey
2
Ha! Ich habe eine Weile dagegen gekämpft. DDMS geöffnet und ich hatte einen alten Emulator ausgewählt. Warum der aktuell ausgeführte Emulator nicht standardmäßig verwendet wird, ist merkwürdig.
Will Curran
Die Antwort von ddewaele hat mein Problem gelöst. Sie müssen LogCat nur dort lassen, wo der Fokus liegen soll. Als Randnotiz müssen Sie nicht die Perspektive ändern, um das Gerätemenü aufzurufen. Gehen Sie einfach zum Fenster >> Ansicht anzeigen >> Andere >> Android >> Geräte, um das Gerätebedienfeld aufzurufen
Jay
@yock Ich glaube, das ist beabsichtigt, da davon ausgegangen wird, dass Sie an dem Punkt, zu dem Sie gescrollt haben, anhalten und lesen möchten.
Michael Mior
1
Hahaha, ich bin so dumm, dass ich nicht weiß, was DDMS ist und wo ich es finden kann.
Neon Warge
71

Wenn alle Stricke reißen:

Ich habe all die oben genannten Dinge getan und konnte nicht herausfinden, was los war.

Test mit:

adb logcat

um herauszufinden, dass meine Einträge in logcat infact waren, aber es waren die Macken von adt.

Fix:

Starten Sie Eclipse neu

Dies war das einzige, was das Problem behoben hat.

Dheeraj Bhaskar
quelle
1
Dies funktioniert, aber ich kann Eclipse nicht weiter neu starten, da dieses Problem bei mir häufig auftritt. Hat jemand eine bessere Lösung?
Khaled Alanezi
@KhaledAlanezi sollte dann in Betracht ziehen, logcat über die Eingabeaufforderung oder Windows Powershell (besser) zu verwenden.
Dheeraj Bhaskar
1
Ich starte Eclipse jedes Mal neu, wenn dies passiert, und es löst immer das Problem. es passiert normalerweise einmal am Tag, aber ich bin es bereits gewohnt, von der Sonnenfinsternis enttäuscht zu sein.
Programmierer
2
@Programmierer nicht mehr von Eclipse enttäuscht sein, gehe zu Android Studio, mein Freund :)
Dheeraj Bhaskar
1
Für mich funktioniert die Verwendung eines Emulators auf einem Remotecomputer, auf dem Eclipse neu gestartet wird, nicht. Logcat zeigt nie etwas an, adb logcatist aber ein guter Tipp. Es funktioniert so positiv.
Soger
12

Ich hatte das gleiche Problem mit Android Studio und konnte mich durch Auswahl No Filtersim Auswahlfeld in der oberen rechten Ecke von LogCat fortbewegen. Auf diese Weise erhielt ich alle Android-Protokolle im Hintergrund in LogCat, einschließlich meiner fehlenden Protokollaufrufe.

Geben Sie hier die Bildbeschreibung ein

KREIS
quelle
9

Starten Sie Eclipse neu und überprüfen Sie, ob die Protokollkatze angezeigt wird.

anjaneya
quelle
6

Ich fand heraus, dass ich automatisch com.sileria.Log (aus einem Bibliotheksprojekt) anstelle von android.util.Log importierte , wobei letzteres das richtige war. Überprüfen Sie auch Ihre Importe.

Marek Walasek
quelle
3

Ich habe festgestellt, dass Eclipse beim Starten einer Android-App manchmal eine Ausnahme auslöst und LogCat dann die Aktualisierung beendet. Ich habe das korrigiert, indem ich Eclipse einfach neu gestartet habe. Ich bin mir nicht sicher, ob Sie das versucht haben und ich weiß, dass es alles andere als eine optimale Lösung ist, aber ich vermute, dass das Eclipse-Plugin noch einige Fehler zu beseitigen hat.

Mike Yockey
quelle
3

Einfachster Weg:

Checken Sie in Ihrem Logcat-Fenster ein - TOP RECHTE Ecke PAUSE-Taste || (Unterbrechen Sie den Empfang neuer Logcat-Nachrichten.)

Wenige Klicks + Starten Sie Eclipse schließlich neu (funktioniert normalerweise in meinem Fall)

fider
quelle
3

Ich musste den ADB-Dienst mit dem Befehl neu starten adb usb

Zuvor hatte ich die gesamte Protokollierung und konnte debuggen, bekam aber keine eigenen Protokollzeilen (ja, ich habe die mit meiner Anwendung verknüpfte Systemprotokollierung erhalten).

Jim Rush
quelle
Ich habe auch das - keine eigenen Protokollzeilen bekommen. Aber das hat nicht geholfen :(
Ixx
2

Es gibt eine Reihe von Gründen, warum möglicherweise keine Protokolle angezeigt werden. Die meisten davon sind unten aufgeführt. Hier sind einige Schritte, um die meisten Gründe zu überprüfen:

  1. Stellen Sie sicher, dass Ihre AndroidManifest.xml nicht "android: debuggable =" false "" enthält
  2. Stellen Sie sicher, dass Ihr Logcat nicht angehalten ist, und stellen Sie sicher, dass Sie nach unten gescrollt sind
  3. Ihre Filter sollten entweder "keine Filter" oder Ihre aktuelle App sein
  4. Sie haben das richtige Gerät in Ihrer Logcat-Geräteliste ausgewählt
  5. Wenn Sie keine Nachrichten erhalten, starten Sie adb neu. Sie können dies in Android Studio tun, indem Sie auf das Symbol "Neustart" klicken. Es befindet sich direkt nach dem Drucksymbol für logcat und sieht aus wie ein grün gebogener Pfeil, der aus einer Box kommt. Wenn Sie es nicht sehen, fahren Sie mit der Maus über das '>>', das das Symbolmenü fortsetzt, wenn der Logcat zu klein ist.
David Ljung Madison Stellar
quelle
2

Unter Android Studio: Klicken Sie auf den grünen Pfeil nach rechts, um die Protokollierung neu zu starten. Wenn es nicht sichtbar ist, klicken Sie auf die >> Symbole, um es zu finden.

Waffe X.
quelle
1

Ich bin auch ein Neuling bei Android-Eclipse. Folgendes brauchte ich, um LogCat-Nachrichten in Eclipse anzuzeigen: 1: Fügen Sie dies der Klasse hinzu, in der die Logcat-Nachricht aufgerufen wird: private static final String TAG = "MyActivity"; (gemäß der Dokumentation hier )

2: füge dieses Log.i hinzu (TAG, "inLayout - fertig"); wenn Sie, wo Sie eine Nachricht anzeigen möchten

Wenn das oben genannte nicht funktioniert, schließen Sie Eclipse und starten Sie es neu und führen Sie Ihr Projekt erneut aus.

Es sollte dann funktionieren.

Jazzmine
quelle
1

Es gibt noch etwas zu beachten:

Oben rechts im Logcat befindet sich eine Dropdown-Tabelle zum Filtern von Nachrichten nach Typ. Stellen Sie sicher, dass es sich auf der Ebene befindet, nach der Sie suchen (wenn es sich auf der Assert-Ebene befindet, wird Ihr Logcat wahrscheinlich leer bleiben).

Itai Hanski
quelle
1

Gehen Sie zum Task-Manager und beenden Sie den Prozess adb.exe. Starten Sie Ihre Eclipse erneut.

oder

Versuchen Sie es mit adb kill-server und dann mit dem Befehl adb start-server .

Arghya
quelle
1

Wahrscheinlich ist es nicht richtig und ein bisschen länger, aber ich habe dieses Problem (Android Studio) folgendermaßen gelöst:

System.out.println("Some text here");

So was:

try {
       ...code here...
} catch(Exception e) {
  System.out.println("Error desc: " + e.getMessage());
}
Sergei Maslovskiy
quelle
1

Ich habe mehrere Stunden mit einem solchen Fall verbracht. Ich habe nur Touch-Key-Protokolle gesehen. Nichts mehr. Problem war ... Smartphone. Nach dem Neustart war OK. Das Trennen des Kabels verursachte ein zurückgegebenes Problem. Musste es neu starten. Es sieht so aus, als ob die Android USB-Kommunikation nicht gut gestaltet ist.

Alex Burton
quelle
Danke dir! Eigentlich war es die USB-Einstellung im Schnellmenü des Telefons ... im Hinblick auf das USB-Debugging. Ich hatte mir angewöhnt, von "Nur aufladen" zu "Dateien übertragen" zu wechseln. ABER nur das Aufladen hat die Protokollierung zum Funktionieren gebracht. Nach ein paar Jahren kehre ich gerade zur Android-Programmierung zurück, und das hat meine Lernkurve wirklich eingeengt.
wwfloyd
Dann bekam ich nur einen Teil der Protokollierung ... alles, was kürzlich hinzugefügt wurde, wurde ignoriert. Habe das mit Clean und Rerun in Android Studio sortiert.
wwfloyd
1

SCHNELLE LÖSUNG.

Starten Sie einfach die Sonnenfinsternis neu

Funktioniert perfekt.

Ali Akram
quelle
0

Wenn Sie das SDK 4.0.3 verwenden, müssen Sie es explizit unter Debug-Konfigurationen> Projekt> Ziel auswählen. Andernfalls wird es mit Eclipse Indigo (3.7) niemals angezeigt. Natürlich erfolgt ein Neustart der Sonnenfinsternis.

Luis Robles
quelle
0

Ich hatte ein Problem damit, auch in logcat eine einfache Protokollausgabe zu sehen. Mein Problem wurde behoben, als ich das neueste JDK installierte. Ich habe gerade eine neue Entwicklungsmaschine eingerichtet und nur die JRE installiert und die Installation des JDK funktioniert für mich.

Jeff LaFay
quelle
0

Keine der anderen Antworten hat bei mir funktioniert, aber das hat funktioniert:

Ich habe mein Projekt aus meinem Arbeitsbereich entfernt und dann alles, was mit einem Punkt (.settings, .project usw.) begann, aus dem Projektordner gelöscht. Dann habe ich das projizierte erneut importiert. Ich vermisse einige Einstellungen und Haltepunkte, aber zumindest funktioniert es.

Geld
quelle
0

Ich hatte dieses Problem und nichts schien zu funktionieren, bis ich den Protokollaufruf in einen Handler verschob. Jetzt funktioniert es jedes Mal, egal wo Sie sich befinden.

a54studio
quelle
0

Ich habe den Fehler gemacht, einen Suchbegriff in das Logcat-Suchfeld einzugeben. Ich habe vergessen, es zu löschen und konnte daher die neuen Protokolle nicht sehen. Da sie nicht mit meinem Suchbegriff übereinstimmten und nicht angezeigt wurden.

Pritesh Desai
quelle
0

In meinem Fall musste ich diese Zeile entfernen:

    <application
         android:debuggable="false"  <!-- Remove this line -->
         ..../>

Vom Anwendungs-Tag in meiner Manifest-Datei.

nmvictor
quelle
0

Die beste Lösung für mich war der Neustart des ADB- Servers (während ich die ADB-Integration in Android Studio aktiviert habe - Tools - Android - aktiviert). Um dies schnell zu erledigen, habe ich eine adbr.batDatei im android-sdk\platform-toolsVerzeichnis (wo sich adb.exebefindet) mit folgendem Inhalt erstellt:

adb kill-server
adb start-server

Da ich diesen Ordner in der PATH-Systemvariablen habe, kann ich immer dann, wenn ich adbvon Android Studio aus neu starten muss , nur in das Terminal schreiben adbrund es ist fertig.

Eine weitere Option hierfür ist der Android-Gerätemonitor auf der Registerkarte Geräte - Menü nach dem Klicken auf den kleinen Pfeil rechts - Adb zurücksetzen .

Atiris
quelle
0

Für Eclipse: 1) Gehen Sie zur ddms-Perspektive. 2) Stellen Sie sicher, dass das richtige Gerät ausgewählt ist. 3) Wenn bereits ausgewählt und keine Protokolle angezeigt werden, starten Sie ABD neu. * Hoffe das wird sich lösen.

Karthik
quelle
0

Ich habe den ADB-Dienst ebenfalls mit "adb usb" neu gestartet und das Problem für mich behoben. Tatsächlich wurde nur eine meiner Aktivitäten nicht mehr protokolliert. Alle anderen haben Sachen protokolliert. Nach dem Neustart von adb funktioniert alles wieder wie ein Zauber. Für die anderen Personen, die nach einer anderen Lösung suchen: adb kill-server, adb start-server in der CLI behebt häufig auch Ihr Problem.


quelle
0

Schalten Sie Ihre App aus, sobald dies LogCat erneut startet ...

Verwenden Sie dies zum Schließen der Kraft: D.

setContentView(BIND_AUTO_CREATE);
user4254398
quelle
0

Manchmal liegt das Problem nicht am PC, sondern an IDE, ADB usw., sondern an Ihrem Gerät , das keine Protokolle an ADB sendet. Wenn Sie also alle zuvor genannten Methoden ausprobiert haben und Ihr Logcat immer noch leer ist, versuchen Sie, das Programm neu zu starten Gerät und versuchen Sie es erneut. Ich habe alle oben genannten Möglichkeiten ausprobiert und keine davon hat funktioniert, aber nach einem Neustart auf meinem Telefon hat logcat wie von Zauberhand funktioniert

Code_Worm
quelle
Wie überprüfe ich, ob das Gerät Protokolle an ADB senden kann?
JCarlosR
@JCarlos Versuchen Sie, Ihr Gerät neu zu starten, wenn keine der oben genannten Lösungen funktioniert hat
Code_Worm
Der AndroidMonitor zeigt die Meldungen an, wenn ich Logdie App verwende und von meinem Smartphone aus starte , aber sie funktioniert nicht von meiner Smartwatch aus. Ich habe mir die Einstellungen angesehen, aber alles scheint gut zu sein.
JCarlosR
0

Ich habe diese Probleme behoben und String TAG ohne Leerzeichen behoben:

"my tag" //
notiere show "my_tag" // ist ok

Jahangiri
quelle
0

In meinem Fall musste ich dem String nur einen Namen hinzufügen. In erster Linie hatte ich nur ein Leerzeichen zwischen den Klammern

private static final String TAG = " ";

aber nach dem Hinzufügen eines Namens funktionierte es perfekt.

private static final String TAG = "oncreate";
Populus_Tremula
quelle
0

Nach dem Upgrade auf Android 3.6.1 ist dieses Problem mehrmals aufgetreten. Das einzige, was in meinem Fall funktioniert, ist das Gerät neu zu starten.

Pablo Alfonso
quelle