Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

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 el espacio de seguimiento de problemas 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 uno de los diferentes recursos de asistencia para desarrolladores de Android.

Cómo informar un error

  1. Asegúrate de usar la versión más reciente de las herramientas. Destinamos mucho tiempo al análisis de errores que ya se solucionaron. Si cerramos el problema, pero no está resuelto, abre otro siempre y cuando puedas reproducirlo con la versión más reciente.

  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 completa 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í e 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 asienta errores constantemente en el registro.

Si se queda sin memoria el IDE

Si se queda sin memoria el IDE, genera un histograma del montón; para ello, ejecuta lo siguiente:

jmap -histo:live <pid>
    

Si falla o genera excepciones el IDE

Para los 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

Incluye la siguiente información específica para los problemas relacionados con la compilación de tus proyectos o vinculados con la sincronización de Gradle:

  • Versión de Gradle. Selecciona File > Project Structure, haz clic en Project y, luego, ubica Gradle version.
  • Versión del complemento de Android. En la misma página en la que figura la versión de Gradle, ubica Android Plugin Version.
  • Versión del SDK de compilación de módulo. En la página anterior, selecciona tu módulo en el subpanel izquierdo y busca Compile Sdk Version.
  • Versión de herramientas de compilación de módulo. En la página anterior, ubica Build Tools Version.
  • Versión de herramientas del SDK de Android. Selecciona Tools > SDK Manager, haz clic en SDK Tools y, luego, ubica Android SDK Tools.

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 Más 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 fallas 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 el Registro 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 problema 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 del dispositivo y, luego, selecciona View Details (o abre el archivo $avdname.avd/config.ini). Busca la entrada hw.device.name. Por ejemplo: hw.device.name=Nexus 5.