Android Studio, logcat pulisce dopo la chiusura dell'app


133

Sto riscontrando un problema con il mio logcat dall'aggiornamento 1.2 Beta per Android Studio. Quando eseguo la mia app registra tutto come faceva normalmente, quindi arrivo al punto in cui la mia app si blocca con l'app che dice: sfortunatamente, il gioco si è interrotto.

Dopo alcuni secondi Android chiude quel messaggio. Quando ciò accade, anche il mio logcat viene completamente cancellato, il che significa che riesco a malapena a leggere l'errore. Ho trovato alcune informazioni su un buffer, ma sembra che Android Studio non abbia la possibilità di aumentarlo oltre al fatto che dubito che sia questo il problema.

Qualcosa che può essere utile è che dopo aver cancellato e riempito il processo cambia in Android.process.core e il messaggio che ottengo nel mio logcat è:

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

Modifica: ho letto dei punti di interruzione, quindi disabilitato focalizzare l'applicazione sui punti di interruzione in Impostazioni-costruzione, esecuzione, distribuzione-debugger ma non ha avuto alcun effetto.


2
Se trovi il percorso installato del programma adb, puoi eseguirlo adb logcatdal tuo terminale o dalla finestra di comando e, facoltativamente, inserirlo in un cercapersone, grep, tee o altro.
Chris Stratton,

1
sì, anche tu puoi provare adb shell bugreport > log.txt, i tipi di informazioni di registro verrebbero recuperati una volta terminato il comando.
buonissimo

@yummy ha funzionato al meglio per me per ora, spero ancora di trovare una soluzione poiché questo non è il modo migliore secondo me. Grazie
Black Lotus,

1
Non ho trovato alcuna soluzione per non pulire i log con Android Studio 1.2, ma una soluzione semplice è quella di non fare clic sul pulsante di chiusura (sul dispositivo) quando l'app si arresta in modo anomalo. Pertanto, hai tutti i registri e i motivi per cui le app si sono arrestate in modo anomalo.
Chakir,

@Jameltheone I messaggi rimangono sullo schermo solo per un paio di secondi. Quindi chiude il dialogo di crash stesso. Quindi non avere il controllo su questo.
Black Lotus

Risposte:


271

Ho avuto lo stesso problema, ma sembra più una funzionalità che un bug:

In AndroidStudio, l'impostazione predefinita per la finestra Logcat sembra essere "Mostra solo l'applicazione selezionata" (angolo in alto a destra della finestra Logcat) ... che sta esaminando il registro del processo selezionato (l'avvio corrente per impostazione predefinita). Pertanto, quando l'app si arresta in modo anomalo durante il test, tale processo viene interrotto, quindi il filtro cancella il registro.

Invece, seleziona "Modifica configurazione filtro ..." e imposta un filtro per la tua app , ad esempio:

  • FilterName: MyApp
  • PackageName: com.example.myapp (<< sostituisci con il nome del pacchetto dell'app)

... quindi seleziona quel filtro per le esecuzioni future. Questo dovrebbe mantenere il registro lì per te, anche dopo l'app che si arresta in modo anomalo.


Grazie mille. Ho capito l'errore 2 giorni fa! Ora so davvero come visualizzare l'errore. :)
Woppi,

Sei un SALVATORE stava cercando di copiare e incollare il registro prima che si cancellasse ... pensavo che il mio telefono stesse funzionando perché altri telefoni si comportano normalmente.
Master Fathi

Proprio quello che mi mancava. Questa dovrebbe essere la risposta accettata.
Grasso

Ha avuto lo stesso problema. Funziona perfettamente.
Chandan Pednekar,

59

Passa "Mostra solo l'applicazione selezionata" su "Nessun filtro". In questo modo, è possibile visualizzare l'output di logcat da un processo anche quando tale processo non è in esecuzione.

L'aspetto negativo è che il tuo logcat sarà riempito con più spam da altri processi.


1
per filtrare lo spam, digita il nome del pacchetto della tua app nella barra di ricerca oltre al menu a discesa "mostra solo l'applicazione selezionata / nessun filtro".
computingfreak

24

La mia app si arrestava in modo anomalo e si riavviava. Ho anche avuto dei problemi a leggere il logcat per sapere cosa stava succedendo. Ho quindi notato che nel menu a discesa, accanto al menu a discesa Dispositivo, c'era qualcosa come "com.mypackage.myapp ('some number')" e quando la mia app andava in crash c'era un'altra opzione che diceva "com.mypackage.myapp ( 'some number') [DEAD] " . Se selezioni l'opzione "Dead", ti mostrerà il logcat dell'istanza precedente.

Dead LogCat


Appare quando si blocca.
ALourenco

Intendevo in crash. Il PID cambia ma l'istanza morta non viene visualizzata nell'elenco.
Karan Modi

20

In caso di crash vedere la Runscheda nella parte inferiore dell'IDE.

È possibile visualizzare il motivo dell'arresto anomalo in questa parte (anche nel caso pulito di logcat).

Nota: se il trucco di cui sopra non funziona, provare a provocare un arresto anomalo e scollegare immediatamente il cavo mobile (se si utilizza il dispositivo reale per il test). puoi vedere l'errore prima che sia pulito.

Aggiornamento: se anche il trucco sopra non funziona, prova a collegare e scollegare il telefono e, si spera, il problema è stato risolto.

Update2: se ancora non funziona, prova a invalidare le catture e riavvia, quindi ricomincia il debug.

Aggiornamento 3: come ultimo modo, prova a rimuovere l'app e installarla di nuovo, quindi avvia il debug (se non perdi quella condizione che desideri testare)


6

In Android Studio 2+

  1. Clic Run

  2. Clic Edit Configurations

  3. Nella Run/Debug Configurationsfinestra selezionare la Miscellaneousscheda

  4. Assicurarsi che la Clear log before launchcasella di controllo non sia selezionata


4

ho affrontato lo stesso problema e questa è la soluzione: -

1- Strumenti -> Android -> Abilita integrazione ADB.

e ora puoi vedere il logcat e gli arresti anomali normalmente


La mia integrazione ADB era già abilitata abbastanza tristemente. Qualcosa che è molto utile è che dopo che si cancella ottengo il messaggio: 04-13 10: 28: 13.394 12259-12265 / android.process.acore D / dalvikvm ﹕ Il debugger è stato rimosso; il registro oggetti aveva 1 voci
Black Lotus

@BlackLotus hai risolto il tuo problema? Devo affrontare lo stesso problema qui
Hoo

Questo non è più valido nel nuovo Android Studio.
Hamzeh Soboh,

4

Il filtro cancella il registro una volta che l'app viene arrestata in modo anomalo. Quindi seleziona "Modifica configurazione filtro" e crea il tuo filtro personalizzato con il nome del filtro. Ciò salverà il registro con le informazioni anche quando l'app è forzata.


1

È il 2018 e questo può ancora succedere. Chiudi Android Studio e riapri.


0

Questo errore sembra essere stato corretto con la nuova versione di Android Studio versione 1.2.2


1
Il bug è ancora qui, anche in Android Studio 2.2.2, quindi suppongo che @maxdownunder avesse ragione nel presupposto che si tratti davvero di una "caratteristica"
Aenadon,

0

Ho riscontrato lo stesso problema e nessuna delle risposte mi ha aiutato, fino a quando ho capito che la mia app stava causando una OutOfMemoryException. Anche questa è una probabile causa principale.

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.