Cómo informar un error

Queremos solucionar los errores que encuentres. Sin embargo, muchos de ellos no brindan la información necesaria. Por lo tanto, centramos nuestros recursos limitados en los errores que incluyan informes completos. Para aumentar las probabilidades de que se resuelva el error que detectaste, tómate unos minutos y lee este documento.

Si no sigues estos pasos, cerraremos la presentación de tu error. En ese caso, vuelve a enviarlo con información adicional.

Además, ten en cuenta que la herramienta de seguimiento de errores no es un foro de asistencia. Si tienes preguntas sobre cómo usar las herramientas o poner en funcionamiento tu app para Android, visita stackoverflow.com o alguno de los numerosos recursos de asistencia para desarrolladores de Android.

Cómo informar un error

  1. Asegúrate de usar las versiones más recientes de las herramientas. De esta manera, evitamos revisar errores que ya se solucionaron. En lo posible, busca también problemas similares en la herramienta de seguimiento de errores de Android Studio para comprobar si el problema que ves ya se informó (por lo general, puedes usar el mensaje de error como palabra clave de la búsqueda).

  2. Para abrir un informe de errores desde Android Studio, selecciona Help > Submit Feedback. Esta es la manera más fácil de informar un error, ya que se propaga el informe correspondiente con tu versión de Android Studio, versión de Java y datos del sistema, que necesitamos para reproducir correctamente el problema. (De lo contrario, informa el error aquí y, luego, ingresa de forma manual la información de la versión).

  3. Describe los pasos exactos que se deben reproducir. Si podemos reproducir el problema en el primer intento, las probabilidades de encontrar una solución son mucho más altas. Si es posible, incluye un fragmento de código (o mejor aún, señala un proyecto de GitHub que pueda utilizarse para reproducir el error). Las capturas de pantalla también son útiles para mostrar lo que observas.

  4. Describe lo que esperabas que sucediera y lo que observaste en lugar de ello.

  5. Elige un resumen descriptivo para el error. Te sorprenderás al ver la cantidad de errores que se presentan con títulos como "Error", "Problema", "Excepción" y "No funciona" a modo de resumen, lo que nos dificulta su clasificación.

  6. Para determinados tipos de errores, necesitamos información adicional:

Detalles de errores de Android Studio

Incluye la siguiente información adicional que es específica de los errores de Android Studio.

Si se bloquea el IDE

Si el IDE en sí parece funcionar con mucha lentitud o está completamente bloqueado, genera algunos volcados de subprocesos y adjúntalos al informe de errores. Gracias a ellos, podemos determinar la razón por la cual el IDE está tan ocupado (o el recurso contenido que espera).

Si el IDE funciona con lentitud, pero no está bloqueado, también debes adjuntar el archivo idea.log (selecciona Help > Show Log in Finder). De esta manera, podemos determinar si la lentitud del IDE se debe a que arroja errores en el registro constantemente.

Si se queda sin memoria el IDE

Los problemas de memoria en Android Studio a veces son difíciles de informar y reproducir. Para resolver este problema, Android Studio ahora incluye un informe de uso de memoria que puedes enviar al equipo de Android Studio para identificar el origen de los problemas de memoria.

Cómo ejecutar un informe de uso de memoria

Para ejecutar un informe de uso de memoria, sigue estos pasos:

  1. Haz clic en Help > Analyze Memory Usage en la barra de menú.

    Android Studio vuelca el montón y te solicita que reinicies el IDE. Si lo haces, el análisis de volcado de montón se iniciará inmediatamente. De lo contrario, el análisis de volcado de montón se iniciará la próxima vez que ejecutes Android Studio. En cualquier caso, el IDE te notificará una vez que el informe de uso de memoria esté listo para que lo revises.

    Notificación que indica que un informe de uso de memoria está listo para revisar

  2. Haz clic en Review Report.

    Antes de enviar el informe, puedes revisar toda la información que incluye.

    Un informe de uso de memoria.

  3. Cuando termines la revisión, copia y pega el contenido del informe en un archivo y adjúntalo cuando presentes el error.

    Si envías la información del informe de esta manera, el equipo de Android Studio podrá comunicarse contigo mediante la herramienta de seguimiento de errores mientras investigamos los problemas de memoria.

Si falla o genera excepciones el IDE

Para otros tipos de fallas, adjunta el archivo idea.log. Selecciona Help > Show Log in Finder.

Cómo generar un volcado de subprocesos

Un volcado de subprocesos muestra un panorama de todos los subprocesos que se ejecutan en la JVM y, en el caso de cada subproceso en particular, ofrece datos sobre todos los marcos de pila. Esto permite determinar la razón por la cual está ocupado el IDE, en especial si generas varios volcados de subprocesos con algunos segundos de diferencia.

Cuando informas errores porque el IDE está extremadamente ocupado con una CPU vinculada o porque parece haberse bloqueado, un volcado de subprocesos permite determinar el código que realiza mucho trabajo o los subprocesos que se disputan los recursos y generan un interbloqueo.

El JDK incluye una herramienta denominada "jstack" que se puede utilizar para generar un volcado de subprocesos. Primero, debes encontrar el ID del proceso de Android Studio. Para ello, puedes usar el comando "jps". Tanto jstack como jps se encuentran en el directorio bin del JDK. Si cuentas con varios JDK instalados, en este caso debes utilizar la misma versión que la que empleas para ejecutar Android Studio. Puedes consultar la versión en el diálogo About de Android Studio.

En Linux y Mac:

jps -mv | grep studio

En Windows:

jps -mv | findstr studio

Por ejemplo, observarás una línea prolongada como la siguiente:

$ jps -mv | grep studio
37605 -Dfile.encoding=UTF-8 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -Djna.nosys=true ...

El primer número de la izquierda (37605 en este caso) es el ID de proceso.

Luego, puedes generar un volcado de subproceso y guardarlo en el archivo dump.txt de esta manera:

jstack -l pid >> dump.txt

Si eso no funciona, existen algunos métodos adicionales específicos de cada plataforma para generar un volcado de subprocesos. Consulta este artículo de asistencia de IntelliJ para obtener instrucciones detalladas.

Detalles de errores de Gradle y de herramientas de compilación

Adjunta un proyecto de verdad o de ejemplo que demuestre el problema. Esta es la mejor manera de garantizar que se obtenga toda la información necesaria. Asegúrate de quitar cualquier información sensible antes de compartirlo.

Si no puedes compartir un proyecto, indica las versiones de las herramientas que usas (trata de usar primero las versiones estables o preliminares más recientes):

  • Versión del complemento de Gradle para Android: selecciona File > Project Structure, haz clic en Project y, luego, ubica Android Gradle Plugin Version.
  • Versión de Gradle: desde la página anterior, ubica Gradle Version.
  • Versión de Android Studio: selecciona Help > About y ubica la versión de Android Studio.

Además, incluye la siguiente información cuando corresponda:

  • Si un comportamiento cambió inesperadamente de una versión anterior a la actual, indica ambas versiones.
  • Si la compilación tiene un error, ejecútala desde la línea de comandos con la opción --stacktrace (es decir, ./gradlew <task> --stacktrace) y proporciónanos un seguimiento de pila.
  • Si la compilación lleva más tiempo del esperado, prueba una de las siguientes opciones:
    • Ejecuta ./gradlew <task> --scan y compártenos el análisis de compilación de Gradle generado.
    • Ejecuta ./gradlew <task> -Pandroid.enableProfileJson=true y comparte los archivos de registro de Chrome generados en el directorio <root-project>/build/android-profile.

Detalles de errores de Android Emulator

La manera más sencilla de recopilar los detalles del emulador consiste en usar la función File a bug en los controles extendidos:

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

    Se 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 un registro de informe de errores. Puedes ingresar los pasos para reproducir aquí o esperar y escribirlos en el informe que se genere en el siguiente paso.

  3. Espera a que el informe de errores termine la recopilación y, luego, haz clic en Send to Google. De esta manera, se abrirá una ventana en la que podrás guardar el informe de errores en una carpeta. Luego, se abrirá el navegador para que crees un informe en la Herramienta de seguimiento de errores de Google, con la información necesaria sobre el emulador ya completada.

  4. En el informe, completa los detalles restantes, como los pasos para reproducir el error y adjunta los archivos guardados cuando creaste el informe de errores.

De lo contrario, deberás ingresar manualmente los siguientes detalles:

  • Versión del emulador. En el emulador, abre Extended controls, haz clic en Help y, luego, haz clic en la pestaña About para conocer la versión del emulador.
  • Versión de herramientas del SDK de Android. Selecciona Tools > SDK Manager, haz clic en SDK Tools y, luego, ubica Android SDK Tools.
  • Modelo de la CPU del host.
    • En Linux: Abre /proc/cpuinfo
    • En Windows: Haz clic con el botón derecho en Equipo y selecciona Propiedades.
    • En Mac: Haz clic en el ícono de Apple y selecciona Acerca de esta Mac.
  • Nombre del dispositivo. En AVD Manager, haz clic para abrir el menú desplegable de la columna Actions para el dispositivo y selecciona View Details (o abre el archivo $avdname.avd/config.ini). Busca la entrada hw.device.name. Por ejemplo: hw.device.name=Nexus 5