Cómo capturar y leer informes de errores

Un informe de errores contiene registros del dispositivo, seguimientos de pila y otra información de diagnóstico para ayudarte a encontrar y corregir errores en tu app. Para capturar un informe de errores desde tu dispositivo, usa la opción para desarrolladores Iniciar informe de errores en el dispositivo, el menú de Android Emulator o el comando adb bugreport en tu máquina de desarrollo.

Figura 1: Opciones para desarrolladores en un dispositivo

Si quieres realizar un informe de errores, debes tener habilitadas las Opciones para desarrolladores en el dispositivo para acceder a la opción Iniciar informe de errores.

Cómo capturar un informe de errores desde un dispositivo

Figura 2: El informe de errores está listo

Para obtener un informe de errores directamente desde el dispositivo, haz lo siguiente:

  1. Habilita las Opciones para desarrolladores.
  2. En Opciones para desarrolladores, presiona Iniciar informe de errores.
  3. Selecciona el tipo de informe de errores que quieras y presiona Notificar.

    Después de unos segundos, se te notificará que está listo el informe de errores, como se muestra en la Figura 2.

  4. Para compartirlo, presiona la notificación.

Cómo capturar un informe de errores desde Android Emulator

En Android Emulator, puedes usar la función File a bug en los controles ampliados:

  1. Haz clic en More , en el panel del emulador.
  2. En la ventana Extended controls, selecciona Bug report.

    Esto abrirá una pantalla en la que podrás ver los detalles del informe de errores, como la captura de pantalla, la información de configuración de AVD y el registro del informe de errores. También puedes escribir un mensaje con pasos de reproducción para guardar con el informe.

  3. Espera a que finalice la recolección del informe de errores y, a continuación, haz clic en Save Report.

Cómo capturar un informe de errores con adb

Si tienes solo un dispositivo conectado, puedes obtener un informe de errores con adb, de la siguiente manera:

$ adb bugreport E:\Reports\MyBugReports

Si no especificas una ruta de acceso para el informe de errores, se guardará en el directorio local.

Si tienes varios dispositivos conectados, debes especificar el dispositivo con la opción -s. Ejecuta los siguientes comandos adb para obtener el número de serie del dispositivo y generar el informe de errores:

$ adb devices
List of devices attached
emulator-5554      device
8XV7N15C31003476 device

$ adb -s 8XV7N15C31003476 bugreport

Cómo guardar un informe de errores anterior

De forma predeterminada, los informes de errores se guardan en /bugreports y se pueden ver usando el siguiente comando:

$ adb shell ls /bugreports/
bugreport-foo-bar.xxx.YYYY-MM-DD-HH-MM-SS-dumpstate_log-yyy.txt
bugreport-foo-bar.xxx.YYYY-MM-DD-HH-MM-SS.zip
dumpstate-stats.txt

Luego, puedes extraer el archivo ZIP mediante adb pull:

$ adb pull /bugreports/bugreport-foo-bar.xxx.YYYY-MM-DD-HH-MM-SS.zip

Cómo inspeccionar el archivo ZIP del informe de errores

De forma predeterminada, el archivo ZIP se denomina bugreport-BUILD_ID-DATE.zip. El archivo ZIP puede contener varios archivos, pero el más importante es bugreport-BUILD_ID-DATE.txt. Este es el informe de errores, que contiene resultados de diagnóstico correspondientes a los servicios del sistema (dumpsys), registros de errores (dumpstate) y registros de los mensajes del sistema (logcat). Estos últimos incluyen seguimientos de pila cuando el dispositivo arroja un error y mensajes de todas las apps con la clase Log.

El archivo ZIP contiene un elemento de metadatos version.txt con la letra de actualización de Android. Cuando se habilita systrace, el archivo ZIP también contiene un archivo systrace.txt. La herramienta de Systrace ayuda a analizar el rendimiento de la app mediante la captura y la visualización de los tiempos de ejecución de los procesos de la app y otros procesos del sistema de Android.

La herramienta dumpstate copia archivos del sistema de archivos del dispositivo en el archivo ZIP de la carpeta FS para que puedas hacer referencia a ellos. Por ejemplo, un archivo /dirA/dirB/fileC del dispositivo generaría una entrada FS/dirA/dirB/fileC en el archivo ZIP.

Figura 3: Estructura de archivos del informe de errores

Para obtener más información, consulta Cómo leer informes de errores.

Cómo obtener informes de tus usuarios

La captura de informes de errores es útil cuando eres tú el que usa la app, pero los usuarios finales no podrán compartir con tanta facilidad estos tipos de informes de errores contigo. Para obtener informes de fallas con seguimientos de pila de usuarios reales, aprovecha las funciones de Firebase Crash Reporting y Google Play.

Google Play Console

Puedes obtener informes de Google Play Console para ver datos de fallas y errores del tipo Aplicación no responde (ANR) de usuarios que instalaron tu app desde Google Play. Se incluyen los datos de los seis meses anteriores.

Para obtener más información, consulta Cómo ver las fallas y los errores de ANR en la ayuda de Play Console.

Firebase Crash Reporting

Firebase Crashlytics crea informes detallados de los errores de tu app. Se agrupan en problemas con seguimientos de pila similares y se clasifican por la gravedad del impacto en los usuarios. Además de los informes automáticos, puedes registrar eventos personalizados para capturar los pasos que llevan a una falla.

Para comenzar a recibir informes de fallas de los usuarios, agrega las dependencias de Firebase al archivo build.gradle. Puedes obtener más información en Firebase Crashlytics.