Logcat non visualizza le mie chiamate di registro


114

Sono un noob totale nella programmazione Android e volevo imparare come eseguire il debug delle mie app. Non riesco a visualizzare le mie chiamate Log.i | d | v in LogCat.

Ecco il codice che sto usando. Come puoi vedere, ho definito una costante LOG_TAG, ma non riesco a trovarla nel LogCat. Ho anche importato android.util.Log E mi sono assicurato che nel mio AndroidManifest avessi "debuggable" impostato su TRUE.

Ho anche controllato http://developer.android.com/reference/android/util/Log.html senza alcuna fortuna per risolvere questo problema.

Che cosa sto facendo di sbagliato? Sto anche cercando nel posto giusto? Ho provato a utilizzare anche la prospettiva DDMS e Debug senza fortuna. Qualsiasi aiuto a questo niubbo sarebbe molto apprezzato. Grazie.

Il mio ambiente: Windows XP IDE = Eclipse Versione: 3.6.1, Build id: M20100909-0800 Emulator = puntare a android sdk 2.1 api 7

// codice HELLO World molto semplice con un paio di chiamate Log.i

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");
    }
}

Non sembra che tu stia facendo qualcosa di sbagliato, sei sicuro che la tua attività sia iniziata? Hai dei filtri impostati nella vista logcat? Hai provato la versione a riga di comando di logcat? (adb logcat)
Cheryl Simon

Sì, ho provato la riga di comando e ho eseguito l'output in un file txt e ancora non sono riuscito a trovarlo. So che l'attività è iniziata perché vedo il messaggio "Hello World" nell'emulatore. Ho provato a visualizzare il logcat con e senza filtri e ancora senza fortuna.
Cavachon

Prova la riga di comando adb logcat e non filtrare nulla prima. Sono abbastanza sicuro che il tuo codice funzioni e venga stampato nel registro.
Heikki Toivonen

LogCat funziona affatto? Ad esempio, vedi voci di registro da altre app (app di sistema, ad esempio)?
Vit Khudenko

Potrebbe essere specifico del dispositivo. abbiamo a volte bisogno di attivare i registri da telefono menu nascosto stackoverflow.com/a/43999262/2783229
Nitesh

Risposte:


143

Quando si utilizza Eclipse, nella prospettiva DDMS, assicurarsi che il dispositivo corretto (propably emulator-xxxx) sia selezionato ed evidenziato. Solo allora otterrai l'output di logcat nella vista logcat.

Inoltre, il plug-in Android è un po 'bizzarro e talvolta mostra solo l'ultima riga nella vista logcat. In questo caso, prova a cancellare il registro. Dopodiché, dovresti recuperare tutte le voci di registro (funziona comunque per me).


Sì, anche tutti i problemi che ho avuto. Se scorri all'interno della visualizzazione Logcat, non scorrerà automaticamente con gli aggiornamenti futuri fino a quando non tornerai in fondo.
Mike Yockey

2
Ha! Stavo combattendo questo per un po '. Ho aperto DDMS e ho selezionato un vecchio emulatore. Il motivo per cui non è predefinito sull'emulatore attualmente in esecuzione è strano.
Will Curran

La risposta di ddewaele ha risolto il mio problema, devi solo lasciare LogCat dove dovrebbe essere il suo obiettivo. Come nota a margine non è necessario cambiare prospettiva per visualizzare il menu dei dispositivi. Basta andare su Finestra >> Mostra Visualizza >> Altro >> Android >> Dispositivi per visualizzare il pannello dei dispositivi
Jay

@yock credo che sia intenzionale in quanto si presume che tu voglia fermarti e leggere nel punto in cui hai fatto scorrere.
Michael Mior

1
Hahaha sono così stupido che non so cosa sia il DDMS e nemmeno dove trovarlo.
Neon Warge

71

Se tutti gli altri falliscono:

Ho fatto tutte le cose di cui sopra e non sono riuscito a capire cosa fosse sbagliato,

Prova con:

adb logcat

per capire che le mie voci erano effettivamente in logcat, ma erano stranezze di adt.

fix:

Riavvia Eclipse

Questa è stata l'unica cosa che l'ha risolto.


1
Funziona, ma non posso continuare a riavviare Eclipse poiché questo problema si verifica spesso per me. Qualcuno ha una soluzione migliore?
Khaled Alanezi

@KhaledAlanezi dovrebbe quindi prendere in considerazione l'utilizzo di logcat dal prompt dei comandi o Windows PowerShell (meglio).
Dheeraj Bhaskar

1
Ho appena riavviato eclipse ogni volta che questo accade e risolve sempre il problema. di solito succede una volta al giorno ma sono già abituato a essere deluso da eclipse ..
programmatore

2
@programmer non essere più deluso da eclipse, passa ad Android Studio, amico mio :)
Dheeraj Bhaskar

1
Per me l'utilizzo di un emulatore su una macchina remota, il riavvio di eclipse non funziona Logcat non mostra mai nulla, ma adb logcatè un buon suggerimento, funziona in modo positivo.
soger

12

Ho avuto lo stesso problema utilizzando Android Studio e sono riuscito a No Filtersspostarmi selezionando nella casella di selezione nell'angolo in alto a destra di LogCat. In questo modo ho iniziato a ricevere tutto ciò che Android registra in background in LogCat, comprese le mie chiamate di registro mancanti.

inserisci qui la descrizione dell'immagine


9

Riavvia Eclipse e verifica che il log cat verrà visualizzato.


6

Ho capito che stavo importando automaticamente com.sileria.Log (da qualche progetto di libreria) invece di android.util.Log , dove quest'ultimo era quello corretto. Controlla anche le tue importazioni.


3

Ho notato che Eclipse a volte genera un'eccezione all'avvio di un'app Android, quindi LogCat interrompe l'aggiornamento. L'ho corretto semplicemente riavviando Eclipse. Non sono sicuro che tu l'abbia provato e so che è tutt'altro che una soluzione ottimale, ma sospetto che il plug-in Eclipse abbia ancora alcuni bug da appianare.


3

Modo più semplice:

Controlla nella finestra del logcat - Pulsante PAUSA nell'angolo IN ALTO A DESTRA || (Metti in pausa la ricezione di nuovi messaggi logcat)

Pochi clic + eventualmente riavviare eclipse (di solito funziona nel mio caso)


3

Avevo bisogno di riavviare il servizio adb con il comando adb usb

Prima di questo, stavo ottenendo tutti i log e in grado di eseguire il debug, ma non ottenevo le mie righe di log (sì, stavo ottenendo la registrazione del sistema associata alla mia applicazione).


Ho anche questo: non ottenere le proprie righe di registro. Ma questo non ha aiutato :(
Ixx

2

Esistono diversi motivi per cui potresti non visualizzare i log, molti dei quali sono elencati di seguito. Ecco alcuni passaggi per verificare la maggior parte dei motivi:

  1. Assicurati di non avere "android: debuggable =" false "" nel tuo AndroidManifest.xml
  2. Assicurati che il tuo logcat non sia in pausa e assicurati di aver fatto scorrere fino in fondo
  3. I tuoi filtri dovrebbero essere "nessun filtro" o la tua app corrente
  4. Hai selezionato il dispositivo corretto nell'elenco dei dispositivi logcat
  5. Se non ricevi alcun messaggio, prova a riavviare adb. Puoi farlo da Android Studio facendo clic sull'icona "riavvia", è subito dopo l'icona di stampa per logcat e sembra una freccia curva verde che esce da una scatola. Se non lo vedi, passa il mouse sul '>>' che continua il menu delle icone quando il logcat è troppo piccolo.

2

Su Android Studio: fare clic sulla freccia verde che punta a destra per riavviare la registrazione; se non è visibile, fare clic sulle icone >> per individuarlo.


1

Anch'io sono un neofita di Android-Eclipse. Ecco cosa ho impiegato per visualizzare i messaggi di LogCat in Eclipse: 1: aggiungilo alla classe in cui viene chiamato il messaggio di logcat: private static final String TAG = "MyActivity"; (per la documentazione qui )

2: aggiungi questo Log.i (TAG, "inLayout - finito"); quando si dove si desidera visualizzare un messaggio

Se quanto sopra non funziona, quindi chiudere Eclipse, riavviarlo e rieseguire il progetto.

Dovrebbe quindi funzionare.


1

C'è ancora una cosa da tenere d'occhio:

Nella parte in alto a destra del logcat c'è una tabella a discesa per filtrare i messaggi per tipo. Assicurati che sia al livello che stai cercando (se sarà al livello di asserzione, probabilmente lascerà vuoto il tuo logcat).


1

Vai a Task Manager e termina il processo adb.exe. Riavvia di nuovo l'eclissi.

o

prova adb kill-server e poi adb start-server command.


1

Probabilmente non è corretto e un po 'più lungo, ma ho risolto questo problema (Android Studio) usando questo:

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

Come questo:

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

1

Ho passato diverse ore su questo caso. Ho visto solo i log dei tasti tattili. Niente di più. Il problema era ... lo smartphone. Dopo il riavvio era OK. Lo scollegamento del cavo ha causato la restituzione del problema. Ho dovuto riavviarlo di nuovo. Sembra che la comunicazione USB Android non sia ben progettata.


Grazie! In realtà, era l'impostazione USB nel menu rapido del telefono ... per quanto riguarda il debug USB. Avevo preso l'abitudine di passare da Solo ricarica a Trasferimento file. MA, solo ricarica è ciò che ha fatto funzionare la registrazione. Sto solo tornando alla programmazione Android dopo alcuni anni di distanza e questo ha davvero ostacolato la mia curva di apprendimento.
wwfloyd

Quindi, ho ricevuto solo alcune delle registrazioni ... tutto ciò che è stato aggiunto di recente è stato ignorato. Ho risolto il problema con Clean and Rerun, in Android Studio.
wwfloyd

1

SOLUZIONE RAPIDA.

Basta riavviare l'eclissi

Funziona perfettamente.


0

Usando l'SDK 4.0.3 devi selezionarlo esplicitamente su configurazioni di debug> progetto> destinazione altrimenti non verrà mai mostrato usando Eclipse Indigo (3.7). Ovviamente ne consegue un riavvio dell'eclissi.


0

Ho anche avuto problemi a vedere il semplice output di log in logcat. Il mio problema è stato risolto quando ho installato l'ultimo JDK. Ho appena configurato una nuova macchina di sviluppo e avevo installato solo JRE e l'installazione di JDK ha funzionato per me.


0

Nessuna delle altre risposte ha funzionato per me, ma questo ha funzionato:

Ho rimosso il mio progetto dal mio spazio di lavoro, quindi ho eliminato tutto ciò che iniziava con un punto (.settings, .project, ecc.) Dalla cartella del progetto. Quindi ho reimportato il proiettato. Mi mancano alcune impostazioni e punti di interruzione ma almeno funziona.


0

Avevo riscontrato questo problema e nulla sembrava funzionare finché non ho spostato la chiamata di registro in un gestore. Ora funziona sempre, non importa dove ti trovi.


0

Ho commesso l'errore di digitare un termine di ricerca nella casella di ricerca di logcat. Ho dimenticato di cancellarlo e quindi non ho potuto vedere i nuovi log. Dal momento che non corrispondevano al termine di ricerca e non sono stati visualizzati.


0

Nel mio caso, ho dovuto rimuovere questa riga:

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

Dal tag dell'applicazione nel mio file Manifest.


0

La soluzione migliore per me era riavviare il server adb (mentre ho abilitato l'integrazione di ADB in Android Studio - Strumenti - Android - selezionato). Per farlo velocemente ho creato un adbr.batfile all'interno della android-sdk\platform-toolsdirectory (dove si adb.exetrova) con questo all'interno:

adb kill-server
adb start-server

Poiché ho questa cartella nella variabile di sistema PATH, sempre quando ho bisogno di riavviare adbda Android Studio, posso scrivere solo nel terminaleadbr ed è fatto.

Un'altra opzione per farlo è tramite Android Device Monitor nella scheda Dispositivi - Menu dopo aver fatto clic sulla piccola freccia a destra - Ripristina adb .


0

Per eclipse: 1) Vai alla prospettiva ddms. 2) Assicurati che sia selezionato il dispositivo corretto. 3) Se già selezionato e non vengono visualizzati i registri, riavviare ABD. * Spero che questo risolva.


0

Ho riavviato anche il servizio ADB con "adb usb" e ho risolto il problema per me. In effetti, solo una delle mie attività non veniva più registrata. Tutti gli altri hanno registrato cose. Dopo il riavvio di adb tutto funziona di nuovo come un incantesimo. Per le altre persone che stanno cercando un'altra soluzione: adb kill-server, adb start-server nella CLI spesso risolverà anche il tuo problema.


0

fai in modo che la tua app si chiuda una volta che questo riavvierà LogCat

usalo per forzare la chiusura: D

setContentView(BIND_AUTO_CREATE);

0

alcune volte il problema non è da pc d'altra parte IDE, ADB ecc., Ma nasce dal tuo dispositivo che non invia i log ad ADB quindi se hai provato tutti i modi menzionati prima e il tuo logcat è ancora vuoto prova a riavviare il tuo dispositivo e riprovare . Ho provato tutti i modi sopra menzionati e nessuno dei due ha funzionato, ma dopo un riavvio sul mio telefono il logcat ha funzionato come per magia


Come verificare se il dispositivo è in grado di inviare log ad ADB?
JCarlosR

@JCarlos prova a riavviare il tuo dispositivo se nessuna delle soluzioni sopra ha funzionato
Code_Worm

AndroidMonitor mostra i messaggi quando uso Loged eseguo l'app dal mio smartphone, ma non funziona dal mio smartwatch. Stavo cercando le impostazioni ma sembra tutto a posto.
JCarlosR

0

Ho questi problemi e risolto, String TAG senza spazio:

"
my_tag" // notando show "my_tag" // va bene


0

Nel mio caso dovevo solo aggiungere un nome alla stringa. In primo luogo avevo solo uno spazio tra le parentesi

private static final String TAG = " ";

ma dopo aver aggiunto un nome ha funzionato perfettamente.

private static final String TAG = "oncreate";

0

Dopo l'aggiornamento ad Android 3.6.1, ho riscontrato questo problema più volte. L'unica cosa che funziona nel mio caso è RIAVVIARE IL DISPOSITIVO.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.