¿Cómo encontrar este seguimiento de pila?
Mi programa sigue fallando, pero el logcat no muestra ninguna excepción. Acabo de recibir el siguiente mensaje, además de un montón de 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.
12-30 23: 13: 06.639: INFO / dalvikvm (7688): Escribir rastreo de pila en '/data/anr/traces.txt'
- E.printStackTrace (); En cuerda
- No puedo encontrar la causa de mi accidente con este seguimiento de pila
- Cliente autónomo de Logcat
- Obtenido un stacktrace de Android Market que menciona la aplicación de un competidor
- Cómo ver el seguimiento de la pila de errores en android?
- Android Log.X no imprime stacktrace
- Trace: requestLayout () incorrectamente llamado?
- Agrupa las trazas de pila de Java / Android en cubos únicos
adb shell
->
cat /data/anr/traces.txt
EDITAR:
Necesitas tener acceso root para modificar los archivos en / data / deberías poder acceder al archivo con una aplicación como https://market.android.com/details?id=com.estrongs.android.pop
Una vez que tengas esa aplicación, ábrala -> Menú -> Configuración -> Directorio Principal (Cambiar de /sdcard/
a /
) -> Salir de la aplicación -> Abrirla de nuevo
Entonces deberías poder navegar a / data / anr / *
EDIT2 (Información adicional, basada en comentarios) para usar con una aplicación publicada después de probar manos:
-
La mayoría de los desarrolladores se basan en el informe de errores de la consola del desarrollador para ver los registros de stacktrace y error cuando un usuario envía un informe de error.
-
Otros impliment su propio o utilizar una biblioteca como ACRA
Tenga en cuenta que algunos usuarios no instalan una aplicación simplemente porque utiliza el permiso para leer datos de registro confidenciales.
Para una visualización cómoda sin la cabeza cortada del uso del archivo que sigue el comando de una línea:
adb shell "cat /data/anr/traces.txt" | less
El ANR significa "Android no responde" y no significa que está utilizando demasiado de la CPU, significa que el looper principal de la interfaz de usuario no se había llamado para una cantidad de tiempo determinado. El looper de la interfaz de usuario se encarga de la entrada del usuario, por lo que desde el punto de vista de su usuario, la aplicación no responde a la entrada. Por lo general, esto se debe a operaciones de ejecución prolongada o de bloqueo en el subproceso de interfaz de usuario principal. Por ejemplo, la descarga de un archivo en el hilo principal podría causar una ANR. Por lo general, es bastante fácil seleccionar el código que causa una ANR sólo de esa información.