2011-12-30 17 views
8

Il mio programma continua a bloccarsi, ma il logcat non mostra eccezioni. Ho appena ricevuto il seguente messaggio, oltre a un sacco di statistiche sull'utilizzo della CPU. Chiaramente sto usando troppa CPU, ma non so quale parte del mio programma stia facendo. Dov'è il seguente file? Non riesco a trovarloCome trovare questa traccia dello stack?

12-30 23: 13: 06,639: INFO/dalvikvm (7688): Ha scritto di stack trace di '/data/anr/traces.txt'

+0

'cat/dati/ANR/traces.txt' ... dovrebbe funzionare con Linux eventualmente con Android troppo. .. – evotopid

risposta

10
adb shell 

->

cat /data/anr/traces.txt 

EDIT:

È necessario avere l'accesso root per modificare i file in/data/si dovrebbe essere in grado di un ccesso il file con un app come https://market.android.com/details?id=com.estrongs.android.pop

Una volta che avete app, aprirla -> Menu -> Impostazioni -> Home directory (passaggio da /sdcard/ a /) -> Uscire dalla app -> Apri di nuovo

Poi si dovrebbe essere in grado di navigare a/dati/ANR/*

EDIT2 (Ulteriori informazioni, sulla base dei commenti) per l'uso con un'applicazione pubblicato dopo che le mani sui test:

  • La maggior parte degli sviluppatori fa affidamento su developer console error reporting per visualizzare lo stacktrace e i log degli errori quando un utente invia un report di errore.

  • Altri impliment proprio o utilizzare una libreria come ACRA

Essere avvertito alcuni utenti non installano un app semplicemente perché utilizza il permesso di leggere i dati di log riservati.

+0

Sto usando Eclipse in Windows. Posso guardare i file sul mio dispositivo/emulatore ma trace.txt non sembra essere da nessuna parte. –

+0

Aggiornato la mia risposta. Puoi usare un'app per accedere a quel file. – TryTryAgain

+0

Come si può accedere a questo file senza accesso root (come i telefoni HTC di serie)? – Amplify91

2

L'ANR sta per "Android Not Responding" e non significa che si sta utilizzando troppa CPU, significa che il looper principale dell'interfaccia utente non è stato chiamato per un dato periodo di tempo. Il looper UI si prende cura dell'input dell'utente, quindi dal punto di vista dell'utente, l'app non ha risposto all'input. Di solito questo è causato da operazioni di lunga durata o di blocco sul thread principale dell'interfaccia utente. Ad esempio, il download di un file sul thread principale potrebbe causare un ANR. Di solito è abbastanza facile individuare il codice che causa un ANR solo da quella informazione.

5

per una visione confortevole, senza testa tagliata di utilizzo del file seguente comando di una sola riga:

adb shell "cat /data/anr/traces.txt" | less

Problemi correlati