Estoy desarrollando una aplicación de Android con Android 2.2, el tamaño de mi aplicación APK es de 22.5 MB, y me gustaría crear una nueva compilación para una tableta Samsung. Tuve el siguiente error:
INSTALL_FAILED_DEXOPT
¿Cómo resuelvo este tipo de error?
Respuestas:
Reiniciar el emulador desde
Android SDK and AVD Manager
y seleccionar la opción meWipe User Data
ha resuelto este problema.Puede encontrar la opción resaltada en la imagen siguiente:
fuente
adb kill-server
entoncesadb start-server
debería resolver su problema. Es posible que exista una aplicación anterior, luego desinstálela primero.Esto parecía estar relacionado con el espacio en disco para mí. Un emulador 5.1 recién lanzado arranca con un error de "poco espacio en el disco", y mirando las propiedades del emulador, el espacio predeterminado asignado para el almacenamiento interno es de 800 MB, que parece bajo.
La solución, por lo tanto, era aumentar esto (fui a 4GB). Curiosamente, el emulador aún se inicia con la misma advertencia de espacio en disco, pero el restablecimiento de fábrica (Configuración -> Copia de seguridad y restauración dentro del emulador) lo resolvió por completo para mí.
Es un poco extraño que no funcione de fábrica con la configuración predeterminada.
fuente
Su versión anterior de la aplicación que está instalando tiene bibliotecas / jarras dependientes que se han cambiado. Me encontré con este problema al actualizar otros archivos jar a los que mi aplicación hacía referencia.
Deberá desinstalar su versión anterior y luego no debería tener más problemas ...
Configuración -> Aplicaciones -> Administrar aplicaciones -> [Buscar y desinstalar su aplicación]
Los errores INSTALL_FAILED_DEXOPT no deberían aparecer. Me gusta
Whoo hoo
fuente
Si está utilizando Android Studio , intente limpiar su proyecto:
Construir> Proyecto limpio
fuente
Parece que este mensaje de error puede tener muchas causas diferentes. El caso que encontré fue en un dispositivo real (por lo que las soluciones de las bases del emulador no se aplicaron).
Básicamente, cuando esto sucede, configure su filtro Logcat en Verbose o Warn , lo que lo ayudará a obtener más información sobre la causa.
En mi caso, se incluyeron versiones múltiples o conflictivas de JUnit en el proyecto en el que estaba trabajando (una gran base de código existente). La aplicación de Android que estaba tratando de implementar tenía varios proyectos de biblioteca como dependencias, y había configurado erróneamente cosas para incluir múltiples archivos jar JUnit.
Descubrí esto basado en una serie de mensajes de Logcat. Tenga en cuenta que la línea WARN da la causa:
fuente
Me encontré con esto con Android Studio 3.4.1 pero usando un emulador anterior (5.0). Este procedimiento (en Mac) solucionó el problema:
fuente
Cambié el tamaño de RAM y la capacidad de almacenamiento entre núcleos del emulador. Ahora está funcionando ... en eclipse AVD Manager
fuente
prueba mi respuesta https://stackoverflow.com/a/34918549/3737254
Si usa Android Studio 2.0, DESACTIVE la ejecución instantánea.
Para su información, la ejecución instantánea es una nueva característica de Android Studio 2.0 (nunca la usé>. <)
cómo deshabilitar: preferencias -> compilación, ejecución e implementación -> ejecución instantánea -> deshabilitar, luego funciona como magia
¡Disfrutar!
fuente
Necesitaba desactivar Instant Run para solucionar el problema. Para deshabilitar la ejecución instantánea en OS X, vaya a Android Studio > Preferencias > Compilación, ejecución, implementación > Ejecución instantánea y elimine la marca de
Enable Instant Run to hot swap code/resource changes on deploy (default enabled)
.fuente
dexopt error. Application failed to install
. Intenté esto antes de encontrar esto:adb kill-server
adb start-server
reiniciando Android Studio y restableciendo mi dispositivo de fábrica.La única solución que me funcionó para solucionar esto fue aumentar la RAM de la VM a 4 GB.
fuente
Tuve el mismo problema hoy con Android Studio en un nuevo dispositivo virtual. Parecía que había descargado la
x86_64
imagen, recreando el VD con lax86
imagen equivalente reparada.Esperaba obtener un
INSTALL_FAILED_NO_MATCHING_ABIS
en este caso, pero de alguna manera estaba atrapado conINSTALL_FAILED_DEXOPT
fuente
x86
falló. Después de descargar la imagen y cambiar el emulador alx86_64
error, desapareció. Usé la imagen del sistema API 21.x86_64
imagen en lugar de lax86
. También estaba usando un API 21 AVD (Nexus 5).Estoy trabajando con Android Studio y tuve el mismo error.
La eliminación de la carpeta de compilación del Modul principal ayudó. Después de eliminar todo vuelve a la normalidad.
fuente
INSTALL_FAIL_DEXOPT generalmente tiene que ver con el límite establecido en classes.dex. En cualquier cosa, el dexopt anterior a ICS fallará en cualquier cosa de más de 5 MB. Las versiones recientes de Android usan un búfer de 8 o 16 MB.
Verifique el tamaño de classes.dex en su APK. También sería bueno ver cuál es su recuento de métodos, ya que dex tiene un límite de campo / método 65536.
Referencias
Error al instalar la aplicación (INSTALL_FAILED_DEXOPT)
https://www.facebook.com/notes/facebook-engineering/under-the-hood-dalvik-patch-for-facebook-for-android/10151345597798920
Cómo reducir el código: límite de método de 65k en dex
fuente
Me encontré con este problema después de habilitar el indicador jumboMode en la compilación (
dex.force.jumbo=true
). Todo funcionó bien en los dispositivos Android más nuevos, pero la instalación falló en Gingerbread.Entonces, si su aplicación requiere el modo jumbo debido a la molesta restricción de 65k, intente cortar algunos códigos / cadenas no utilizados y vuelva a establecer el modo jumbo en falso.
fuente
classes.dex
no llega a la final.apk
. Ejecutargradlew --offline clean && gradlew --offline assembleDebug
cosas fijas para mí cada vez. Desde ese punto, puede comenzar a iniciar la aplicación desde Android Studio nuevamente.EDIT: Antes de lo que he dicho anteriormente ir al Administrador de tareas y matar a todos
cmd.exe
yconhost.exe
procesos (o simplemente aquel en el queaapt
se atascó). Deaapt
lo contrario, se bloqueará a partir de ahora cuando se inicie desde la línea de comandos con el infame error-1073741819
.fuente
build.gradle
archivo de proyecto raíz . Entre las dependencias de buildscript debería haberclasspath 'com.android.tools.build:gradle:1.0.0-rc4'
.Obtuve el mismo error y lo solucioné aumentando el tamaño del almacenamiento interno.
El almacenamiento interno se configuró inicialmente en 32 MB (lo sé) y luego instalé un par de aplicaciones en él, lo que había dejado menos espacio de lo que se necesitaba para instalarlo.
fuente
verificar el espacio de almacenamiento en su dispositivo
fuente
Sin embargo, desinstalé la aplicación y obtuve el error INSTALL_FAILED_DEXOPT. Si está trabajando con Android Studio / gradle: gradle clean fue el truco para mí, Cheers.
fuente
en build.gradle cambia compilado y compila a la última versión. Y funcionó para mí.
================
fuente
muchas respuestas aquí, pero tal vez pueda ayudar a alguien que tuve este problema con un dispositivo real y el problema fue con D8
intenta agregar esto a tu gradle.properties y funciona para mí
fuente
Estaba recibiendo este problema cuando intentaba instalar en dispositivos 2.3 (bien en 4.0.3). Terminó siendo debido a un proyecto de lib que estaba usando tenía varios frascos que eran para cosas que ya estaban en Android, por ejemplo, analizadores HttpClient y XML, etc.
logcat
Mi observación me llevó a encontrar esto, ya que me decía que estaba omitiendo clases debido a que ya estaban siendo presente. Buen error original inútil allí!fuente
Tuve este error de prueba en un dispositivo real. Borrar el caché / desinstalar, reiniciar todo no funcionó para mí, eliminar el contenido de la carpeta de compilación sí :) (Android studio)
fuente
No hay una solución genérica, debe encontrar el error informado en su Logcat para poder resolverlo. A veces es una clase que no se puede 'eliminar' debido al uso de una clase que no está disponible en la API de destino especificada, por ejemplo. O podría ser una clase a la que hace referencia en su código, pero la biblioteca en la que se encuentra no se está empaquetando.
fuente
Considera usar proguard para reducir tu APK. Tengo el mismo problema si intento instalar un gran APK de 25MB + en un viejo dispositivo Samsung Galaxy Ace 2.3.6 sin reducir / optimizar el código con Proguard.
El modo Jumbo y el reinicio del dispositivo no funcionan.
fuente
En mi caso, se trataba de un error en el complemento kotlin, versión 1.1.51
https://youtrack.jetbrains.com/issue/KT-20034
Este error apareció en dispositivos antiguos (API 16).
Se solucionó esto eliminando las anotaciones @Parcelize y reemplazándolas con este generador de código: https://github.com/nekocode/android-parcelable-intellij-plugin-kotlin
fuente
targetSdkVersion 22 // 17 ==========================> establecer este número menor o igual a la versión del sistema operativo Android en los dispositivos podría ayudar
fuente
Tuve este problema cuando había algunos caracteres Unicode en los nombres de mis métodos (debido a, de todas las cosas, copiar / pegar desde un archivo de PowerPoint) que a Dalvik no le gustaba. Puede ver esto mirando la salida de Logcat mientras intenta instalar el APK.
Esto fue en un dispositivo real.
fuente
Se resolvió corrigiendo la fecha y hora en el teléfono (era una fecha predeterminada el 01.01.1980) y limpiando el proyecto.
fuente
Había cambiado mi versión de soporte de Android versión 4 para SDK 21 y tuve este error. Así que volví a la versión de soporte para la versión anterior (antes del 21) y funcionó. El error ocurría solo en Android 2.3
fuente
Me encontré con este problema cuando intentaba actualizar las nuevas herramientas de compilación 24.0.1. Se perdió la conexión a Internet y las herramientas no se descargaron con éxito, después de eso recibí este error y pasé mucho tiempo tratando de resolverlo. Pero cuando actualicé con éxito las herramientas de compilación, el problema se resolvió. Buena suerte.
fuente