Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android

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

by
Difficulty:BeginnerLength:LongLanguages:

Spanish (Español) translation by Elías Nicolás (you can also view the original English article)

Las pruebas son una parte crucial del desarrollo de Android, lo que le permite solucionar todos los errores, errores y problemas de rendimiento que pueden estar al acecho en su aplicación, antes de liberarla en el público en general.

Cada vez que se produce un error, Android genera un mensaje de error y, a continuación, muestra dicho mensaje como parte del Monitor Logcat de Android Studio o como un diálogo en el dispositivo que está utilizando para probar su aplicación.

Estos mensajes de error suelen ser cortos y al punto, ya primera vista puede no parecer tan útil. Sin embargo, estos mensajes realmente contienen toda la información que necesita para volver a poner en marcha su proyecto, ¡sólo necesita saber cómo descifrarlos!

En este artículo, vamos a echar un vistazo a los 13 mensajes de error que es más probable encontrar al desarrollar cualquier aplicación de Android. Examinaremos cada uno de estos mensajes de error, examinando todas las posibles razones por las que podría encontrar cada error y, lo que es más importante, compartiendo instrucciones paso a paso sobre cómo resolverlas.

Detección de mensajes de error

Hay una amplia gama de mensajes de error que puedes encontrar al probar tu aplicación, que van desde errores graves que causarán que tu aplicación se bloquee la primera vez que intentes instalarla en un dispositivo de destino a errores más sutiles que degradan el rendimiento de tu aplicación en el tiempo.

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

Detectar los mensajes de error que aparecen en un dispositivo físico o en AVD es fácil: basta con prestar atención a los diálogos que aparecen en la pantalla del dispositivo. Sin embargo, detectar errores que aparecen en Android Studio puede ser complicado, ya que el monitor de Logcat registra una gran cantidad de información, por lo que es fácil omitir mensajes de error importantes.

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

Open Logcat Monitors dropdown and select Error

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

Este error se debe a que Android Studio no puede generar correctamente su archivo R.java y, a menudo, puede surgir de la nada. En un minuto todo funcionará correctamente y al minuto siguiente no se compilará cada parte de su proyecto. Para empeorar las cosas, cuando Android Studio se encuentra con el error R.layout, por lo general señala todos los archivos de recursos de diseño como contienen errores, lo que hace difícil saber dónde empezar a buscar el origen del error.

A menudo, la solución más eficaz es la más simple: limpiar y reconstruir su proyecto. Seleccione Build > Clean Project en la barra de herramientas de Android Studio, espere unos momentos y, a continuación, cree su proyecto seleccionando Build > Rebuild Project.

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

Si encuentra este error después de mover algunos archivos y directorios, es posible que el error de R.layout esté causado por una falta de coincidencia entre la caché de Android Studio y el diseño actual de su proyecto. Si sospecha que puede ser el caso, seleccione File > Invalidate Caches / Restart > Invalidate y reiniciar de la barra de herramientas de Android Studio.

Los problemas con los nombres de sus recursos también pueden impedir que el archivo R.java se cree correctamente, así que compruebe que no tiene varios recursos con el mismo nombre y que ninguno de los nombres de archivo contiene caracteres no válidos. Android Studio sólo admite minúsculas a-z, 0-9, paradas completas y subrayados, y un único carácter no válido puede causar un error de R.layout en todo el proyecto, incluso si realmente no utiliza este recurso en cualquier parte de su proyecto.

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

2. Demasiadas referencias de campos ... .Max es 65.536

Cuando compila su aplicación, el APK contiene archivos de bytecode ejecutables en forma de archivos de bytecode de Dalvik Executable (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 se encuentra con el campo Too many fields ... entonces significa que su aplicación ha superado este límite. Tenga en cuenta que se trata de una limitación en el número de métodos referencias de su proyecto y no el número de métodos que define su proyecto.

Si encuentra este error, puede:

  • Reduzca el número de referencias en su proyecto. Una de las maneras más eficaces de recortar sus referencias de métodos es revisar las dependencias de su aplicación, ya que a menudo son 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 de habilitar el soporte multidex variará dependiendo de las versiones de Android compatibles con su proyecto.

Si está orientado a Android 5.0 o superior, el primer paso es abrir el archivo build.gradle a nivel de módulo y configurar multiDexEnabled como true:

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

El siguiente paso depende de si está o no anulando la clase de aplicación Application.

Si su proyecto invalida la clase de aplicación Application, abra su manifiesto y agregue lo siguiente a la etiqueta <application>:

Si su proyecto no invalida la clase de aplicación Application, deberá extender MultiDexApplication en su lugar:

Por último, si reemplaza la clase Application pero no puede cambiar la clase base, puede habilitar multidex reemplazando el método attachBaseContext() y llamando a MultiDex.install(this), por ejemplo:

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

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

Para corregir este error:

  • Seleccione Archivo > Estructura del proyecto... en la barra de herramientas de Android Studio.
  • Seleccione Ubicación de SDK en el menú de la izquierda.    
  • Asegúrese de que la casilla Usar JDK incrustado está seleccionada.
Navigate to File Project structure SDK Location and select the Use embedded JDK checkbox

Si esto no resuelve el problema, vaya de nuevo a Archivo> Estructura del proyecto ...> Ubicación del SDK e introduzca 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:

4. Error al instalar APK

Aunque los AVD son ideales para probar tu aplicación en una amplia gama de diferentes hardware y software, siempre deberías probar tu aplicación en al menos un smartphone o tablet físico Android. Sin embargo, la capacidad de Android Studio para reconocer un dispositivo Android conectado es notoriamente impredecible.

Si ha conectado su dispositivo a la máquina de desarrollo pero encuentra un Error installing APK error al instalar el mensaje de APK cada vez que intenta instalar su APK o si su dispositivo no aparece ni siquiera en la ventana Seleccionar destino de despliegue Select Deployment Target , pruebe las siguientes revisiones:

Compruebe que la depuración USB esté habilitada.

Abre la configuración de tu dispositivo, luego selecciona Opciones de desarrollador y asegúrate de que la Depuración USB esté habilitada. Si no ve Opciones de desarrollador en el menú Configuración, seleccione Acerca del teléfono y siga tocando Crear número Build Number hasta que aparezca una notificación Ahora es un desarrollador You are now a developer . Vuelva a la pantalla principal de configuración y verá que se ha agregado Opciones de desarrollador.

Compruebe la pantalla de su smartphone o tablet.

A veces, su dispositivo puede requerir alguna entrada adicional antes de conectarse a su máquina de desarrollo. Por ejemplo, puede estar pidiendo que elija entre diferentes modos, o para autorizar explícitamente la conexión.

Asegúrese de que tiene instalado el controlador USB correcto.

Si se está desarrollando en Windows, tendrá que descargar el controlador USB OEM adecuado para su dispositivo. Si eres un usuario de Nexus, puedes descargar el controlador USB de Google a través del Administrador de SDK de Android Studio.

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

Encontrará el SDK mínimo de su proyecto en su archivo gradle.build de nivel de módulo y podrá comprobar qué versión de Android está instalada en su dispositivo abriendo Configuración y pasando a la sección Acerca de Teléfono.

Intente reiniciar su proceso de adb (Android Debug Bridge).

Abra una ventana Terminal o de línea de comandos y, a continuación, cambie directorio (cd), por lo que apunta a la ventana de herramientas de plataforma platform-tools, por ejemplo:

A continuación, finaliza y reinicia el proceso adb introduciendo los siguientes comandos uno tras otro:

¡Reinicie todo!

Si todo falla, intenta desconectar y volver a conectar tu dispositivo, reiniciar el dispositivo, reiniciar Android Studio y, como último recurso, reiniciar tu 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, entonces debe comprobar cuánto espacio le ha asignado a este AVD particular:

  • Inicie el Administrador de AVD.
  • Busque el AVD en cuestión y haga clic en el icono Editar este AVD que se adjunta.
  • En la ventana que aparece, haga clic en Mostrar configuración avanzada.
  • Desplácese hasta la sección Memoria y almacenamiento.

En esta sección se enumeran los distintos tipos de memoria que ha asignado a este AVD particular. Si cualquiera de estos valores es inusualmente bajo, debe aumentarlos para reflejar más de cerca la memoria disponible para su smartphone o tablet Android típico:

  • RAM. La cantidad de RAM disponible para el dispositivo emulado.
  • VM Heap. ¿Cuánto espacio de montón (es decir, memoria) se asigna a la máquina virtual (VM) del smartphone o tablet emulado.
  • Almacenamiento interno. La cantidad de memoria no removible disponible para el dispositivo emulado.
  • Tarjeta SD. La cantidad de memoria extraíble disponible. Si desea utilizar una tarjeta SD virtual gestionada por Android Studio, seleccione Studio-managed e introduzca el tamaño de la tarjeta virtual SD 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 tu AVD, o estás intentando instalar tu aplicación en un smartphone o tablet físico Android, este error normalmente significa que la aplicación compilada es simplemente demasiado grande. Una aplicación que toma un bocado significativo de la memoria del dispositivo en el momento de la instalación nunca va a ir 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:

  • Utilice la herramienta aapt para optimizar sus drawables con compresión sin pérdidas o utilice un programa diseñado para reducir el tamaño de sus archivos PNG (zopflipng, pngcrush, OptiPNG, TinyPNG o pngquant) o el tamaño de sus JPEGs (packJPG). Como alternativa, puede intentar reemplazar sus archivos PNG y JPEG con imágenes en el formato WebP.
  • Recuerde eliminar todas las funciones relacionadas con depuración de la versión de su aplicación. Android no requiere que esta información se ejecute, por lo que sólo ocupa espacio innecesario.
  • Revise su proyecto para cualquier recurso duplicado. Incluso los recursos ligeros como cadenas duplicadas contribuyen algo hacia el tamaño final de APK.
  • Utilice Lint para identificar cualquier recurso que no se haga referencia en cualquier parte de su código y eliminar estos recursos. Para ejecutar Lint, seleccione Analizar > Inspect Code... en la barra de herramientas de Android Studio.
  • Habilite la reducción de recursos, agregando shrinkResources true al archivo build.gradle de su proyecto.
  • Si necesita utilizar variaciones de la misma imagen, utilice 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, puedes aplicar diferentes colores a una imagen usando android:tint y tintMode, y puedes rotar una imagen usando android:fromDegrees, android:toDegrees, android:pivotX y android: pivotY.
  • Optimice sus bibliotecas. Intente eliminar todas las bibliotecas innecesarias o de memoria de su proyecto. Si necesita utilizar 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 se escribe con móviles en mente. 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, es posible que pueda 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 el archivo build.gradle a nivel de módulo y utilice el atributo resConfigs. Por ejemplo, aquí estamos especificando que queremos incluir sólo cadenas en inglés en nuestro proyecto:

  • Considere si su APK contiene una gran cantidad de contenido que el usuario individual puede descargar pero nunca utilizar. Por ejemplo, un dispositivo con una pantalla hdpi no tiene mucho uso para los activos xxxhdpi! Una de las formas más eficaces de reducir el tamaño de tu APK es separarla en varios APK, por lo que cuando el usuario descargue tu aplicación, recibirán un APK que sólo contiene el código y los recursos que tienen sentido para su dispositivo en particular. Encontrará más información sobre la creación de APK que se orientan a diferentes densidades de pantalla y ABI específicas (interfaces binarias de aplicaciones) en los documentos oficiales de Android.

6. ActivityNotFoundException

Una excepción ActivityNotFoundException se produce cuando una llamada a startActivity(Intent) o una de sus variantes falla porque la Activity no puede ejecutar la Intent dada.

La causa más común de una ActivityNotFoundException es olvidarse de declarar una actividad en su manifiesto, abra su manifiesto y compruebe que ha declarado todas sus actividades. También debe comprobar que ha declarado cada actividad correctamente, utilizando un nombre de clase totalmente calificado o una parada completa como una abreviatura para el nombre del paquete. Por ejemplo, ambos son válidos:

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

También se puede causar una excepción de ActivityNotFoundException si un error en la Activity actividad de destino no se carga correctamente. Para comprobar si esto está ocurriendo en su proyecto, ponga su código de intención dentro de un bloque try-catch:

Ejecute la aplicación de nuevo y, a continuación, eche un vistazo al Monitor de Logcat de Android Studio para ver si se ha capturado cualquier excepción que pueda estar impidiendo que se cree la actividad de destino. Si este es el caso, la resolución de estos errores también debería resolver la ActivityNotFoundException.

7. ClassCastException

El error ClassCastException se relaciona con la función de conversión de tipo de Java, que le permite generar variables de un tipo a otro. Encuentra una ClassCastException cuando intenta emitir un objeto a una clase de la que no es una instancia. Por ejemplo, ambos fragmentos de código siguientes darán lugar a un ClassCastException:

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

Si no puede detectar un problema con su conversión, considere si ha cambiado recientemente algunas Views en sus archivos de recursos de diseño, ya que algunos usuarios han informado de haber encontrado ClassCastException después de reorganizar sus vistas Views. Si sospecha que esto puede ser la causa de su ClassCastException, dígale a Android Studio que vuelva a generar sus archivos de diseño desde cero, realizando un ciclo de limpieza / reconstrucción. Esto obliga a Android Studio a registrar correctamente sus cambios de diseño recientes, 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 una pieza desconocida de datos asignando un valor nulo a la referencia de ese objeto. Los valores nulos pueden ser útiles en la codificación de algunos patrones de diseño, pero si se encuentra con NullPointerException (NPE), significa que ha intentado utilizar una referencia que apunte a un valor nulo, como si estuviera haciendo referencia a un objeto. Dado que no hay código para ejecutar en la ubicación donde esta referencia está apuntando, se enrolla 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 de Logcat debe contener la línea exacta donde se produjo este error. Navegue hasta esta área de su proyecto e identifique la referencia que sea igual a null. A continuación, tendrá que buscar la ubicación donde se debe establecer el valor y establecerlo.

El método findViewById también puede devolver null si la View solicitada no se encuentra, por lo que si su NPE se está produciendo en una línea que contiene un findViewById, compruebe que ha inicializado el diseño que contiene esta View. También estar en la búsqueda de cualquier errores ortográficos o errores tipográficos que pueden haberse introducido en su llamada findViewById, ya que también puede dar lugar a un NPE.

Para evitar que los NPE se produzcan en su proyecto, asegúrese de que todos los objetos se inicializan antes de intentar utilizarlos y compruebe siempre que una variable no es nula antes de solicitar un método o un campo de ese objeto.

9. Error de aplicación que no responde

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

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

Si encuentras un mensaje de ANR mientras pruebas tu aplicación, definitivamente necesitas echar un vistazo al trabajo que estás realizando en el hilo principal. Sin embargo, si no encuentra este error de forma explícita, pero observa que su aplicación a veces se siente lenta o laggy, entonces esto es una indicación de que está al borde de un error de ANR y una vez más debe echar un vistazo al estado de su hilo de interfaz de usuario.

Para resolver los errores ANR (y los errores cerca de ANR), debe identificar todas las operaciones que tienen el potencial para ejecutarse lentamente o que requieren una potencia de procesamiento significativa y, a continuación, moverlos fuera del subproceso principal. Para ello, cree un hilo de trabajo en el que se puedan realizar estas operaciones con cero riesgo de bloquear el hilo principal de la interfaz de usuario.

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

Sin embargo, AsyncTasks son más adecuados para realizar operaciones cortas en segundo plano, por lo que si necesita realizar una operación de larga ejecución, debe utilizar un servicio Service o un IntentService en su lugar.

Aunque mover las tareas largas e intensivas del subproceso principal tendrá el mayor impacto en el rendimiento de la aplicación, es recomendable realizar el menor trabajo posible en el subproceso principal de la interfaz de usuario. Incluso ejecutar una pequeña cantidad de código innecesario en el hilo principal puede tener un impacto en la capacidad de respuesta de la aplicación, por lo que una vez que haya reubicado con éxito todas las operaciones intensivas y de larga duración, debería buscar si hay más código que pueda salir del hilo principal.

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

En Android, puede actualizar su interfaz de usuario sólo desde el hilo principal. Si intenta acceder a elementos de interfaz de usuario desde cualquier otro subproceso, a continuación, se va a encontrar este error.

Para resolver este problema, identifique la parte de su tarea de fondo que intenta actualizar la interfaz de usuario y moverla a un runOnUiThread, por ejemplo:

Como alternativa, puede utilizar un controlador o realizar su trabajo de fondo en AsyncTask, ya que puede comunicarse con el subproceso principal utilizando el método de devolución de llamada onPostExecute() de AsyncTask. Por último, si te encuentras cambiando regularmente de subprocesos, puedes buscar RxAndroid, ya que esta biblioteca te permite crear un nuevo hilo, programar el trabajo que se realizará en este hilo y luego publicar los resultados en el hilo principal, todos con sólo unas pocas líneas de código.

11. NetworkOnMainThreadException

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

Si encuentra una NetworkOnMainThreadException, busque el código de red que se está ejecutando en su subproceso principal y muévalo a un subproceso separado.

Si necesita hacer frecuentes solicitudes de conexión en red, es posible que desee echar un vistazo a Volley, una biblioteca HTTP que inicia sus propios subprocesos de fondo para que todas las solicitudes de red se realicen fuera del subproceso principal de forma predeterminada.

12. La actividad ha filtrado la ventana que fue agregada originalmente 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 rechazar el diálogo correctamente llamando a dismiss() en el método onDestroy() o onPause() de su Actividad, por ejemplo:

13. OutofMemoryError

Este error se produce cuando su aplicación realiza una petición de memoria que el sistema no puede cumplir. Si encuentra este mensaje de error, inicie descartando todos los errores de administración de memoria más comunes. Compruebe que ha recordado cancelar el registro de todos sus receptores de difusión y que ha detenido todos sus servicios; asegúrese de que no se está aferrando a las referencias de ninguna variable miembro estática y de que no intenta cargar ningún mapa de bits grande.

Si ha descartado todas las causas obvias de un OutOfMemoryError, entonces tendrá que profundizar y examinar exactamente cómo su aplicación está asignando memoria, ya que es probable que haya algunas áreas en las que puede mejorar la administración de la memoria de su aplicación.

Android Studio tiene un área dedicada a ayudarte a analizar el uso de la memoria de tu aplicación, así que comienza seleccionando Ver > Ventana Herramientas en la barra de herramientas de Android Studio. En este punto verá una opción de Android Monitor o Android Profiler, dependiendo de la versión de Android Studio que haya instalado.

Hemos hablado de trabajar con el Monitor de memoria en esta página web antes, pero como Android Profiler es una nueva adición a Android Studio, echemos un vistazo a sus principales características.

Al abrir Android Profiler, se inicia la grabación de tres piezas de información de forma automática.

The Android Profiler tracks the apps CPU Memory and Network information automatically

Dado que estamos interesados en la forma en que nuestra aplicación está utilizando la memoria, dar un clic en la sección de memoria, que se iniciará la memoria Profiler.

El Perfilador de memoria consiste en una línea de tiempo que muestra los diferentes tipos de memoria que está siendo asignado actualmente por su aplicación, por ejemplo, Java, nativo y stack. Encima de este gráfico encontrarás una fila de iconos que puedes usar para activar 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 del montón de la aplicación, incluyendo el tipo de objetos que su aplicación está asignando, el número de objetos asignados y la cantidad de espacio que ocupan estos objetos.
  • Registre las asignaciones de memoria. Al registrar las asignaciones de memoria de la aplicación mientras realiza ciertas acciones, puede identificar las operaciones específicas que consumen demasiada memoria.
The Memory Profiler displays the different kinds of memory your app is allocating

Para identificar las partes de la aplicación que son responsables de OutOfMemoryError, pasar algún tiempo interactuando con su aplicación y supervisar 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, pase algún tiempo escudriñándolo por cualquier pérdida de memoria, así como cualquier ineficacia en la forma en que está utilizando la memoria.

Conclusion

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

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

Y, si no puede encontrar una solución en cualquier parte de la web, siempre puede comunicarse con la comunidad de Android para obtener ayuda directamente, enviando su pregunta a Stack Overflow.

¡Mientras estés aquí, echa un vistazo a algunos de nuestros otros artículos sobre el desarrollo de aplicaciones para Android!

Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.