Cómo resolver los 13 mensajes de error más comunes de Android

Las pruebas son una parte crucial del desarrollo de Android, ya que le permiten solucionar todos los errores, errores y problemas de rendimiento que pueden estar ocultos en su aplicación, antes de desencadenarla en el público en general.

Cada vez que encuentra un error, Android genera un mensaje de error y luego muestra ese mensaje como parte de Android Studio. Monitor Logcat o como un diálogo en el dispositivo que está utilizando para probar su aplicación.

Estos mensajes de error son generalmente cortos y al punto, y a primera vista pueden no parecer tan útiles. Sin embargo, estos mensajes realmente contienen toda la información que necesita para volver a encarrilar su proyecto; solo necesita saber cómo descifrarlos.!

En este artículo, vamos a analizar en profundidad los 13 mensajes de error que es más probable que encuentre al desarrollar alguna Aplicación Android. Estaremos analizando cada uno de estos mensajes de error. De Verdad significa examinar todas las razones posibles por las que podría encontrar cada error y, lo que es más importante, compartir instrucciones paso a paso sobre cómo resolverlos.  

Mensajes de error de localización

Existe una amplia gama de mensajes de error que puede encontrar al probar su aplicación, desde errores graves que harán que su aplicación se bloquee la primera vez que intente instalarla en un dispositivo de destino, hasta errores más sutiles que degradarán el rendimiento de su aplicación a lo largo del tiempo..

Dependiendo del tipo de error que encuentre, Android mostrará el mensaje de error en el dispositivo que está usando para probar su aplicación o en Android Studio.

Es fácil detectar los mensajes de error que aparecen en un dispositivo físico o AVD. ¡Solo tiene que prestar atención a cualquier diálogo que aparezca en la pantalla de su dispositivo! Sin embargo, detectar errores que aparecen en Android Studio puede ser complicado, ya que el Monitor Logcat registra una gran cantidad de información, lo que facilita la pérdida de mensajes de error importantes.. 

La forma más sencilla de asegurarse de que no se pierda ningún mensaje de error es abrir el Monitor Logcat Verboso desplegable y configurarlo para Error, que filtrará todo excepto los mensajes de error.


1. R.layout.main no se puede encontrar / no se puede resolver el símbolo R

Este error se produce cuando Android Studio no puede generar su R.java Archivo correctamente, y con frecuencia puede surgir de la nada: en un minuto, todo funcionará bien, y en el siguiente minuto no se compilará cada parte de su proyecto. Para empeorar las cosas, cuando Android Studio se encuentra con el R.layout error, normalmente marcará todos los archivos de recursos de diseño que contengan errores, lo que dificulta saber dónde comenzar a buscar la fuente del error.

A menudo, la solución más efectiva es la más simple: limpie y reconstruya su proyecto. Seleccionar Construir> Proyecto Limpio desde la barra de herramientas de Android Studio, espere unos momentos y luego genere su proyecto seleccionando Construir> Reconstruir Proyecto.

Si un solo ciclo de limpieza / reconstrucción no funciona, intente repetir este proceso varias veces, ya que algunos desarrolladores han informado resultados positivos después de completar varios ciclos de limpieza / reconstrucción en una sucesión rápida.

Si encuentra este error después de mover algunos archivos y directorios, es posible que el R.layout el error se debe a una falta de coincidencia entre la memoria caché de Android Studio y el diseño actual de su proyecto. Si sospecha que este puede ser el caso, seleccione Archivo> Invalidar cachés / Reiniciar> Invalidar y reiniciar de la barra de herramientas de Android Studio.

Los problemas con los nombres de sus recursos también pueden prevenir la R.java El archivo no se creó correctamente, así que verifique que no tenga varios recursos con el mismo nombre y que ninguno de sus nombres de archivo contenga caracteres no válidos. Android Studio solo admite minúsculas a-z, 0-9, paradas completas y guiones bajos, y un solo carácter no válido puede provocar una R.layout error en todo el proyecto, incluso si en realidad no utilizar Este recurso en cualquier parte de tu proyecto.!

Si identifica y resuelve un error, pero Android Studio sigue mostrando el R.layout error, es posible que deba completar un ciclo de limpieza / reconstrucción antes de que Android Studio registre correctamente sus cambios.

2. Demasiadas referencias de campo ... El máximo es 65,536

Cuando compila su aplicación, el APK contiene archivos de bytecode ejecutables en forma de archivos de bytecode ejecutables de Dalvik (DEX). La especificación DEX establece que un solo archivo DEX puede hacer referencia a un máximo de 65,536 métodos, y si encuentra la Demasiados campos ... error, entonces significa que su aplicación ha superado este límite. Tenga en cuenta que esto es una limitación en la cantidad de métodos que su proyecto referencias, y no el número de métodos que su proyecto define.

Si encuentra este error, entonces puede:  

  • Reduce el número de referencias en tu proyecto. Una de las maneras más efectivas de recortar las referencias de sus métodos es revisar las dependencias de su aplicación, ya que estas son a menudo uno de los mayores contribuyentes de referencias de métodos..
  • Configure su aplicación para usar más de un archivo DEX, habilitando multidex.

El proceso para habilitar el soporte multidex variará dependiendo de las versiones de Android que admita su proyecto.

Si está apuntando a Android 5.0 o superior, entonces el primer paso es abrir su archivo build.gradle a nivel de módulo y configurar multiDexEnabled a cierto:

android defaultConfig minSdkVersion 21 multiDexEnabled true

Sin embargo, si su minSdkVersion es 20 o menos, entonces deberás agregar el multiDexEnabled true atributo y luego agregue la biblioteca de soporte multidex como una dependencia de proyecto:

dependencias compile 'com.android.support:multidex:1.0.1'

El siguiente paso depende de si está anulando o no la Solicitud clase.

Si su proyecto anula el Solicitud clase, luego abra su Manifiesto y agregue lo siguiente a la etiqueta:

... 

Si su proyecto no anula el Solicitud clase, entonces tendrás que extender Aplicación MultiDex en lugar:

clase pública MyApplication extiende MultiDexApplication

Por último, si anula el Solicitud clase pero no puede cambiar la clase base, entonces puede habilitar multidex al anular la attachBaseContext () método y vocación MultiDex.install (este), por ejemplo:

@ Overcride protegido void attachBaseContext (base de contexto) super.attachBaseContext (base); MultiDex.install (este); 

3. Por favor, elija un directorio JDK válido

Si recibe un error de JDK cada vez que intenta crear su aplicación, significa que Android Studio está luchando para encontrar dónde está instalado el JDK en su máquina de desarrollo..

Para corregir este error:

  • Seleccionar Archivo> Estructura del proyecto ... de la barra de herramientas de Android Studio.
  • Seleccionar Ubicación SDK desde el menú de la izquierda.
  • Asegúrate que Usar JDK incrustado casilla de verificación está seleccionada.

Si esto no resuelve el problema, vuelva a Archivo> Estructura del proyecto…> Ubicación SDK, e ingrese manualmente la ruta completa del archivo para su JDK. Si no está seguro de dónde está instalado el JDK en su máquina de desarrollo, puede averiguarlo abriendo el Terminal (Mac) o el Símbolo del sistema (Windows) e ingresando el siguiente comando:

/ usr / libexec / java_home

4. Error al instalar APK

Si bien los AVD son excelentes para probar su aplicación en una amplia gama de diferentes hardware y software, siempre debe probar su aplicación en al menos un teléfono inteligente o tableta Android física. Sin embargo, la capacidad de Android Studio para reconocer un dispositivo Android conectado es notoriamente impredecible.

Si ha conectado su dispositivo a su máquina de desarrollo pero se encuentra con un Error al instalar APK un mensaje cada vez que intenta instalar su APK, o su dispositivo ni siquiera aparece en el Seleccionar destino de implementación ventana, a continuación, intente las siguientes correcciones:

Comprobar que la depuración USB está habilitada. 

Abra su dispositivo Ajustes, luego selecciona Opciones de desarrollador, y asegúrate Depuración USB está habilitado. Si no ves Opciones de desarrollador en el Ajustes menú, luego seleccione Sobre telefono y sigue haciendo tapping Número de compilación hasta un Ahora eres un desarrollador aparece una notificación Volver a la principal Ajustes pantalla, y usted debe encontrar que Opciones de desarrollador ha sido añadido.

Compruebe la pantalla de su teléfono inteligente o tableta. 

A veces, su dispositivo puede requerir alguna entrada adicional antes de que se conecte a su máquina de desarrollo. Por ejemplo, puede pedirle que elija entre diferentes modos o que autorice explícitamente la conexión.

Asegúrese de tener instalado el controlador USB correcto. 

Si está desarrollando en Windows, entonces deberá descargar el controlador USB OEM apropiado para su dispositivo. Si eres usuario de Nexus, puedes descargar el Google USB controlador a través del SDK Manager de Android Studio.

Compruebe que su dispositivo cumple con los requisitos mínimos de SDK de su proyecto. 

Encontrará el SDK mínimo de su proyecto en su archivo gradle.build a nivel de módulo, y puede verificar qué versión de Android está instalada en su dispositivo abriendo su Ajustes y deslizar a la Sobre telefono sección.

Intente reiniciar su proceso adb (Android Debug Bridge). 

Abra una ventana de Terminal o Símbolo del sistema y luego cambie el directorio (discos compactos), entonces está apuntando a tu plataforma-herramientas ventana, por ejemplo:

cd / Users / Downloads / adt-bundle-mac / sdk / platform-tools

Luego, finalice y reinicie el proceso adb ingresando los siguientes comandos, uno después del otro:

./ adb kill-server
./ adb start-server

Reiniciar todo! 

Si todo lo demás falla, intente desconectar y luego volver a conectar su dispositivo, reiniciar su dispositivo, reiniciar Android Studio y, como último recurso, reiniciar su máquina de desarrollo.

5. INSTALL_FAILED_INSUFFICIENT_STORAGE

Si encuentra este error al intentar instalar su proyecto, significa que el dispositivo de destino no tiene suficiente memoria.

Si está intentando instalar su proyecto en un AVD, debe verificar cuánto espacio le ha asignado a este AVD en particular:

  • Ejecutar el administrador de AVD.
  • Encuentra el AVD en cuestión y haz clic en el que acompaña. Editar este AVD icono.
  • En la ventana que aparece, haga clic en. Mostrar configuración avanzada.
  • Desplácese hasta el Memoria y almacenamiento sección.

Esta sección enumera los distintos tipos de memoria que ha asignado a este AVD en particular. Si alguno de estos valores es inusualmente bajo, debe aumentarlos para reflejar mejor la memoria disponible para su tableta o teléfono inteligente Android típico:

  • RAM. La cantidad de RAM disponible para el dispositivo emulado..
  • VM Heap. ¿Cuánto espacio de almacenamiento (es decir, memoria) se asigna a la Máquina Virtual (VM) del teléfono inteligente o tableta emulada?.
  • Almacenamiento interno. La cantidad de memoria no extraíble disponible para el dispositivo emulado.
  • tarjeta SD. La cantidad de memoria extraíble disponible. Si desea utilizar una tarjeta SD virtual que es administrada por Android Studio, seleccione Gestionado por estudio e ingrese el tamaño de la tarjeta SD virtual que desea crear (el valor mínimo recomendado es de 100 MB). Alternativamente, puede administrar el “espacio” de la tarjeta SD en un archivo, seleccionando Archivo externo y luego especificando la ubicación que desea utilizar.

Si no hay nada extraño en la memoria de su AVD, o está intentando instalar su aplicación en un teléfono inteligente o tableta Android física, entonces este error generalmente significa que su aplicación compilada es simplemente demasiado grande. Una aplicación que toma una porción importante de la memoria del dispositivo en el momento de la instalación nunca va a funcionar bien. 

Si necesita reducir drásticamente el tamaño de su APK, pruebe las siguientes técnicas: 

  • Utilice ProGuard para eliminar clases, campos, métodos y atributos no utilizados. Para habilitar ProGuard, abra su archivo build.gradle a nivel de módulo y agregue lo siguiente:

buildTypes release // Habilitar ProGuard // minifyEnabled true // Ya que queremos reducir nuestro tamaño de APK tanto como sea posible, estoy usando la configuración del archivo proguard-android-Optimize.txt // proguardFiles getDefaultProguardFile ('proguard -android-optimize.txt '),' proguard-rules.pro '
  • Use la herramienta aapt para optimizar sus dibujables con compresión sin pérdida, o use un programa que esté diseñado para reducir el tamaño de sus archivos PNG (zopflipng, pngcrush, OptiPNG, TinyPNG o pngquant) o el tamaño de sus JPEG (packJPG). Como alternativa, puede intentar reemplazar sus archivos PNG y JPEG con imágenes en formato WebP.
  • Recuerde eliminar todas las funciones relacionadas con la depuración de la versión de lanzamiento de su aplicación. Android no requiere esta información para ejecutarse, por lo que solo ocupa un espacio innecesario.
  • Explora tu proyecto en busca de cualquier recurso duplicado. Incluso los recursos ligeros, como las cadenas duplicadas, contribuyen a su tamaño final de APK.
  • Use Lint para identificar los recursos a los que no se hace referencia en ningún lugar de su código, y elimine estos recursos. Para ejecutar Lint, seleccione Analizar> Inspeccionar Código ... de la barra de herramientas de Android Studio.
  • Habilitar la reducción de recursos, agregando shrinkResources true al archivo build.gradle de tu proyecto.
  • Si necesita usar variaciones de la misma imagen, use la misma imagen base y personalícela en tiempo de ejecución, en lugar de agregar varias versiones de la misma imagen a su proyecto. Por ejemplo, puede aplicar diferentes colores a una imagen usando Android: tinte y tintMode, y puedes rotar una imagen usando android: fromDegrees, android: toDegrees, Android: pivotX, y Android: pivoty.
  • Optimiza tus bibliotecas. Intente eliminar de su proyecto las bibliotecas innecesarias o que requieran mucha memoria. Si necesita usar una biblioteca grande, compruebe si hay alguna forma de optimizar esta biblioteca para el entorno móvil, ya que el código de la biblioteca externa a menudo no está escrito pensando en el dispositivo móvil. También debe tener en cuenta que muchas bibliotecas contienen una gran cantidad de cadenas localizadas. Si su aplicación no admite oficialmente estas bibliotecas, puede reducir el tamaño de la biblioteca diciéndole a Gradle que no incluya estas cadenas en su APK compilado. Para especificar los idiomas que su aplicación admite oficialmente, abra su archivo build.gradle a nivel de módulo y use el resConfigs atributo. Por ejemplo, aquí especificamos que queremos incluir solo cadenas en idioma inglés en nuestro proyecto:

android defaultConfig resConfigs "en"
  • Considere si su APK contiene una gran cantidad de contenido que el usuario individual puede descargar pero nunca usar. Por ejemplo, un dispositivo con una pantalla hdpi no tiene mucho uso para xxxhdpi ¡bienes! Una de las formas más efectivas de reducir el tamaño de su APK es separarlo en múltiples APK, de modo que cuando el usuario descarga su aplicación, recibirá un APK que contiene solo el código y los recursos que tienen sentido para su dispositivo en particular. Encontrará más información sobre la creación de archivos APK dirigidos a diferentes densidades de pantalla y ABI específicas (interfaces binarias de aplicaciones) en los documentos oficiales de Android.

6. ActivityNotFoundException

Un ActivityNotFoundException ocurre cuando una llamada a startActivity (Intención) o una de sus variantes falla porque la Actividad no puede ejecutar lo dado Intención.

La causa más común de una ActivityNotFoundException se olvida de declarar una actividad en su manifiesto, así que abra su manifiesto y verifique que haya declarado todas sus actividades. También debes comprobar que has declarado cada actividad. correctamente, usando un nombre de clase completo o una parada completa como una abreviatura para el nombre del paquete. Por ejemplo, ambos de los siguientes son válidos:

Si no puede detectar ningún problema con su manifiesto, existen otras causas posibles de ActivityNotFoundExceptions. En primer lugar, si encuentra este error después de mover un Actividad clase de un paquete a otro, entonces es posible que haya confundido Android Studio y solo necesite limpiar y reconstruir su proyecto.

Un ActivityNotFoundException También puede ser causado si un error en el objetivo Actividad no se carga correctamente Para verificar si esto está ocurriendo en su proyecto, coloque su código de intención dentro de un bloque try-catch:

intente // Su código aquí // catch (ActivityNotFoundException e) e.printStackTrace (); 

Ejecute su aplicación nuevamente y luego eche un vistazo al Monitor Logcat de Android Studio para ver si ha capturado alguna excepción que impida que se cree la actividad de destino. Si este es el caso, entonces resolver estos errores debería resolver el ActivityNotFoundException, también.

7. ClassCastException

los ClassCastException el error está relacionado con la función de conversión de tipo de Java, que le permite convertir variables de un tipo a otro. Te encuentras con un ClassCastException cuando intentas lanzar un objeto a una clase de la que no es una instancia. Por ejemplo, ambos de los siguientes fragmentos de código darán como resultado un ClassCastException:

Objeto x = nuevo entero (0); System.out.println ((String) x);
ImageView image = (ImageView) context.findViewById (R.id.button);

Este mensaje de error contiene información sobre la línea que está causando el ClassCastException error, así que navegue a esta parte de su proyecto, verifique qué objetos se están lanzando allí y resuelva cualquier desajuste.

Si no puede detectar un problema con su lanzamiento, considere si ha movido algunos Puntos de vista en sus archivos de recursos de diseño, ya que algunos usuarios han informado que se han encontrado con ClassCastException después de reorganizar su Puntos de vista. Si sospechas que esta puede ser la causa de tu ClassCastException, luego diga a Android Studio que regenere sus archivos de diseño desde cero, realizando un ciclo de limpieza / reconstrucción. Esto obliga a Android Studio a registrar correctamente sus cambios recientes de diseño, lo que debería resolver su ClassCastException.

8. NullPointerException

En Java, cuando declara una variable de referencia, en realidad está creando un puntero a un objeto. Puede declarar que un objeto está apuntando actualmente a un dato desconocido asignando un valor nulo a la referencia de ese objeto. Los valores nulos pueden ser útiles para codificar algunos patrones de diseño, pero si encuentra una NullPointerException (NPE) significa que ha intentado usar una referencia que apunta a un valor nulo, como si estuviera haciendo referencia a un objeto. Como no hay ningún código para ejecutar en la ubicación a la que apunta esta referencia, usted termina con un NPE.

Un NPE suele ir acompañado de información sobre dónde se detectó esta excepción, por lo que el Monitor Logcat debe contener la línea exacta donde ocurrió este error. Navegue a esta área de su proyecto e identifique la referencia que es nula. A continuación, deberá encontrar la ubicación donde se debe establecer el valor y establecerlo.

los findViewById método también puede devolver nulo si el solicitado Ver no se puede encontrar, por lo que si su NPE está ocurriendo en una línea que contiene una findViewById, Comprueba que has inicializado el diseño que contiene este Ver. También esté atento a cualquier error ortográfico o error tipográfico que pueda haberse introducido en su findViewById llamada, ya que estos también pueden resultar en una NPE.  

Para evitar que se produzcan NPE en su proyecto, asegúrese de que todos sus objetos estén inicializados antes de intentar usarlos y siempre verifique que una variable no sea nula antes de solicitar un método o campo de ese objeto.

9. Error de aplicación que no responde

Este es un error que aparece como un diálogo en el dispositivo Android o AVD que está utilizando para probar su aplicación. los La aplicación no responde El error (ANR) se produce cuando la interfaz de usuario de su aplicación se congela y no responde a la entrada del usuario durante más de cinco segundos. Esto suele ocurrir porque su aplicación está intentando realizar operaciones largas o intensivas en el subproceso principal de la interfaz de usuario de Android.

En Android, el subproceso principal de la interfaz de usuario es responsable de enviar todos los eventos de entrada del usuario a los widgets de la interfaz de usuario adecuados y de actualizar la interfaz de usuario de la aplicación. Sin embargo, este subproceso solo puede procesar una tarea a la vez, por lo tanto, si bloquea el subproceso principal con operaciones de larga duración o intensivas, su IU no responderá completamente hasta que se complete esta tarea..

Si encuentra un mensaje ANR mientras prueba su aplicación, entonces seguro Necesito echar un vistazo al trabajo que estás realizando en el hilo principal. Sin embargo, si no encuentra este error explícitamente pero nota que su aplicación a veces se siente lenta o retrasada, entonces esto indica que está al borde de un error de ANR, y una vez más debería echar un vistazo al estado de su hilo de interfaz de usuario.

Para resolver errores ANR (y cerca-Errores de ANR), debe identificar todas las operaciones que tienen el potencial de ejecutarse lentamente, o que requieren una potencia de procesamiento significativa, y luego sacarlas del hilo principal. Para ello, crea un subproceso de trabajo en el que estas operaciones se pueden realizar sin ningún riesgo de bloquear el subproceso de la interfaz de usuario principal..

Existen varios métodos para crear subprocesos adicionales, pero la solución más sencilla es utilizar un AsynTask, ya que esta clase ya contiene su propio hilo de trabajo y un onPostExecute () devolución de llamada que puede utilizar para comunicarse con el hilo principal de la interfaz de usuario de Android.

Sin embargo, las AsyncTasks son más adecuadas para realizar operaciones de fondo cortas, por lo que si necesita realizar una operación de larga duración, debe usar un Servicio o un Servicio de Intención en lugar.

A pesar de que mover las tareas de larga duración e intensivas del hilo principal tendrá el mayor impacto en el rendimiento de su aplicación, se recomienda realizar el menor trabajo posible en el hilo de la interfaz de usuario principal. Incluso la ejecución de una pequeña cantidad de código innecesario en el subproceso principal puede tener un impacto en la capacidad de respuesta de su aplicación, por lo que una vez que haya reubicado con éxito todas sus operaciones intensivas y de larga ejecución, debería ver si hay algún código más que pueda mover fuera del hilo principal.

10. Solo el hilo original que creó una jerarquía de vistas puede tocar sus vistas

En Android, puedes actualizar tu interfaz de usuario solo desde el hilo principal. Si intenta acceder a los elementos de la interfaz de usuario desde cualquier otro subproceso, entonces encontrará este error..

Para resolver este problema, identifique la parte de su tarea en segundo plano que está intentando actualizar la interfaz de usuario y muévala a una runOnUiThread, por ejemplo:

runOnUiThread (new Runnable () @Override public void run () // Actualice su UI //);

Alternativamente, puede usar un controlador o realizar su trabajo en segundo plano en una AsyncTask, ya que puede comunicarse con el hilo principal utilizando AsyncTask's onPostExecute () método de devolución de llamada. Finalmente, si se encuentra cambiando regularmente de subprocesos, es posible que desee consultar RxAndroid, ya que esta biblioteca le permite crear un nuevo subproceso, programar el trabajo que se realizará en este hilo y luego publicar los resultados en el hilo principal. todo con solo unas pocas lineas de codigo.

11. NetworkOnMainThreadException

Esta excepción se produce cuando su aplicación intenta realizar operaciones de red en el hilo principal, como enviar solicitudes de API, conectarse a una base de datos remota o descargar un archivo. Dado que las operaciones de red pueden llevar mucho tiempo y trabajo, es muy probable que bloqueen el subproceso principal, por lo que Android 3.0 (Honeycomb) y superior generarán este error cada vez que intente realizar una solicitud de red en el subproceso principal.

Si encuentras un NetworkOnMainThreadException, luego encuentre el código de red que se está ejecutando en su hilo principal y muévalo a un hilo separado.

Si necesita realizar solicitudes de red con frecuencia, es posible que desee echar un vistazo a Volley, una biblioteca HTTP que inicia sus propios subprocesos en segundo plano para que todas las solicitudes de red se realicen fuera del hilo principal de forma predeterminada..

12. La actividad tiene una ventana filtrada que originalmente se agregó aquí

Este error se produce al intentar mostrar un diálogo después de salir de la actividad. Si encuentra este problema, abra su actividad y asegúrese de que está descartando el diálogo correctamente, llamando al despedir() en cualquiera de sus actividades onDestroy () o en pausa () método, por ejemplo:

@Override notificó el vacío onDestroy () super.onDestroy (); if (pDialogue! = null) pDialogue.dismiss (); 

13. OutofMemoryError

Este error se produce cuando la aplicación realiza una solicitud de memoria que el sistema no puede cumplir. Si encuentra este mensaje de error, comience por descartar todos los errores de administración de memoria más comunes. Verifique que haya recordado anular el registro de todos sus receptores de transmisión y que haya detenido todos sus servicios; asegúrese de no mantener referencias en ninguna variable miembro estática y de que no está intentando cargar mapas de bits grandes.

Si has descartado todas las causas obvias de un Error de memoria insuficiente, Luego, deberá profundizar más y examinar exactamente cómo su aplicación está asignando memoria, ya que es probable que haya algunas áreas en las que pueda mejorar la administración de la memoria de su aplicación..

Android Studio tiene un área completa dedicada a ayudarlo a analizar el uso de la memoria de su aplicación, así que comience seleccionando Ver> Ventana de herramientas desde la barra de herramientas de Android Studio. En este punto verá una Monitor de android o Perfilador de Android Opción, dependiendo de la versión de Android Studio que haya instalado..

Ya hemos hablado sobre cómo trabajar con el Monitor de memoria en este sitio web, pero como Android Profiler es una nueva incorporación a Android Studio, echemos un vistazo rápido a sus principales funciones..

Cuando abres Android Profiler, comienza a grabar automáticamente tres datos..

Ya que estamos interesados ​​en la forma en que nuestra aplicación está usando la memoria, Memoria sección un clic, que lanzará el Perfil de memoria.

El Perfil de memoria consiste en una línea de tiempo que muestra los diferentes tipos de memoria que su aplicación asigna actualmente, por ejemplo Java, nativo, y apilar. Encima de este gráfico, encontrará una fila de iconos que puede usar para desencadenar diferentes acciones:

  • Forzar un evento de recolección de basura.
  • Tome una instantánea Hprof de la memoria de la aplicación. Esta es una instantánea de todos los objetos en el montón de su aplicación, incluido el tipo de objetos que asigna, el número de objetos asignados y la cantidad de espacio que ocupan estos objetos..
  • Asignaciones de memoria de registro. Al registrar las asignaciones de memoria de la aplicación mientras realiza ciertas acciones, puede identificar las operaciones específicas que consumen demasiada memoria..

Para identificar las partes de su aplicación que son responsables de la Error de memoria insuficiente, dedique un poco de tiempo a interactuar con su aplicación y supervise cómo cambian las asignaciones de memoria de su aplicación en respuesta a diferentes acciones. Una vez que haya identificado la sección de su proyecto que está causando el problema, dedique un tiempo a examinarla en busca de cualquier pérdida de memoria, así como a cualquier ineficiencia en la forma en que la usa..

Conclusión

En este artículo analizamos 13 de los mensajes de error que es más probable que encuentre al desarrollar para Android. Discutimos todos los diferentes factores que pueden contribuir a estos errores y los pasos que debe seguir para resolverlos..

Si está siendo afectado por un mensaje de error que no cubrimos, entonces su primer paso debería ser copiar / pegar todo el mensaje de error en Google, ya que esto a menudo mostrará hilos y publicaciones de blog donde la gente está discutiendo cómo resolverlo. este error en particular.

Y, si no puede encontrar una solución en cualquier lugar de la web, siempre puede buscar ayuda directamente en la comunidad de Android, publicando su pregunta en Stack Overflow.

Mientras estés