2011-12-30 11 views
8

Mi programa sigue fallando, pero el logcat no muestra ninguna excepción. Acabo de recibir el siguiente mensaje, además de muchas estadísticas sobre el uso de la CPU. Claramente estoy usando demasiado de la CPU, pero no sé qué parte de mi programa está haciendo esto. ¿Dónde está el siguiente archivo? No puedo encontrarlo¿Cómo encontrar este rastro de pila?

12-30 23: 13: 06,639: INFO/dalvikvm (7688): Escribió seguimiento de la pila a '/data/anr/traces.txt'

+0

'cat/datos/ANR/traces.txt' ... debería funcionar con Linux finalmente con Android también. .. – evotopid

Respuesta

10
adb shell 

->

cat /data/anr/traces.txt 

EDIT:

es necesario tener acceso root para modificar los archivos en/data/usted debería ser capaz de una l acceso al archivo con una aplicación como https://market.android.com/details?id=com.estrongs.android.pop

Una vez que tenga esa aplicación, abrirla -> Menú -> Configuración -> Directorio principal (Cambio de /sdcard/ a /) -> salir de la aplicación -> Abrir de nuevo

, entonces debería ser capaz de navegar a/data/ANR/*

Edit2 (información adicional, basado en los comentarios) para su uso con una aplicación publicada después de las manos sobre las pruebas:

  • La mayoría de los desarrolladores confían en el developer console error reporting para ver la pila y registros de errores cuando un usuario envía un informe de error.

  • Otros impliment su cuenta o utilizar una biblioteca como ACRA

Se advierte que algunos usuarios no instalan una aplicación, simplemente porque utiliza el permiso para leer datos confidenciales del registro.

+0

Estoy usando Eclipse en WIndows. Puedo buscar en los archivos en mi dispositivo/emulador pero traces.txt no parece estar en ningún lado. –

+0

Actualizado mi respuesta. Puede usar una aplicación para acceder a ese archivo. – TryTryAgain

+0

¿Cómo se puede acceder a este archivo sin acceso de root (como stock de teléfonos HTC)? – Amplify91

2

ANR significa "Android no responde" y no significa que está utilizando demasiado de la CPU, significa que el enrutador principal de la interfaz de usuario no se ha llamado durante un tiempo determinado. El looper UI se encarga de la entrada del usuario, por lo que desde el punto de vista de su usuario, la aplicación no respondía a la entrada. Por lo general, esto se produce al realizar operaciones de larga duración o de bloqueo en la hebra de la IU principal. Por ejemplo, descargar un archivo en el hilo principal podría causar un ANR. Por lo general, es bastante fácil seleccionar el código que causa un ANR solo a partir de esa información.

5

Para una visualización cómoda y sin cabeza cortadas de utilización archivo siguiente comando de una línea:

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

Cuestiones relacionadas