cómo resolver INSTALL_FAILED_DEXOPT este error?

Estoy desarrollando en la aplicación de Android con Android 2.2, mi aplicación de tamaño apk es de 22.5 mb, ahora me gustaría tomar una nueva comstackción para la tableta de Samsung. Tengo este error como

INSTALL_FAILED_DEXOPT

cómo resolver este tipo de error

Reiniciar el emulador desde Android SDK and AVD Manager y seleccionar la opción Wipe User Data ha solucionado este problema.

Puede encontrar la opción resaltada en la imagen que se muestra a continuación:

Eliminar la opción de Datos de usuario al iniciar el emulador de Android

La 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 que mi aplicación estaba refrencing.

Necesitarás desinstalar tu versión anterior y entonces no deberías tener más problemas …

Configuración -> Aplicaciones -> Administrar aplicaciones -> [Buscar y desinstalar su aplicación]

Los errores INSTALL_FAILED_DEXOPT no deberían entrar en erupción. Me gusta

 [2011-06-14 01:23:40 - ProtectYourself] Installing ProtectYourself.apk... [2011-06-14 01:24:26 - ProtectYourself] Installation error: INSTALL_FAILED_DEXOPT [2011-06-14 01:24:26 - ProtectYourself] Please check logcat output for more details. [2011-06-14 01:24:26 - ProtectYourself] Launch canceled! 

Whoo hoo.

Si está utilizando Android Studio , intente limpiar su proyecto:

Construir> Proyecto Limpio

Parece que este mensaje de error puede tener muchas causas diferentes. El caso con el que me encontré fue en un dispositivo real (por lo que las soluciones basadas en el emulador no se aplicaron).

Básicamente, cuando esto sucede, configure su filtro Logcat en Detallado o Advertir , 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 cosas por error para incluir varios archivos jar JUnit.

Descubrí esto basado en una serie de mensajes de Logcat. Tenga en cuenta que la línea WARN da la causa:

 DEBUG/dalvikvm(4808): DexOpt: 'Ljunit/framework/TestSuite$1;' has an earlier definition; blocking out 11-06 14:30:10.973: WARN/dalvikvm(4808): Invalid file flags in class Ljunit/runner/Sorter$Swapper;: 0209 11-06 14:30:10.973: null/libc(4808): Fatal signal 11 (SIGSEGV) at 0x00000004 (code=1), thread 4808 (dexopt) 

prueba mi respuesta https://stackoverflow.com/a/34918549/3737254

si usa android studio 2.0, DISABLE la ejecución instantánea.

FYI, la ejecución instantánea es una nueva característica de android studio 2.0 (nunca lo usé>. <)

cómo deshabilitar: preferencias -> comstackción, ejecución e implementación -> ejecución instantánea -> deshabilitar, luego funciona como magia

¡Disfrutar!

Necesitaba deshabilitar Instant Run para solucionar el problema. Para deshabilitar la Ejecución instantánea en OS X, vaya a Android Studio > Preferencias > Comstackción, Ejecución, Despliegue > Ejecución instantánea y luego quite la marca de Enable Instant Run to hot swap code/resource changes on deploy (default enabled) .

Estoy trabajando con Android Studio y tuve el mismo error.

Eliminar la carpeta de comstackción del Modul principal ayudó. Después de eliminar todo vuelve a la normalidad.

Cambié el tamaño de RAM y la capacidad de almacenamiento interno del emulador. Ahora está funcionando … en el administrador de eclipse AVD.

INSTALL_FAIL_DEXOPT normalmente tiene que ver con el límite establecido en classes.dex. En cualquier cosa pre-ICS dexopt fallará en cualquier cosa de más de 5 MB. Las versiones recientes de Android usan un búfer de 8 o 16 MB.

Compruebe el tamaño de classes.dex en su APK. También sería bueno ver cuál es el recuento de su método, ya que dex tiene un límite de método / campo 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 del método 65k en dex

Me encontré con este problema después de habilitar el indicador jumboMode en la comstackción ( dex.force.jumbo=true ). Todo funcionó bien en los dispositivos Android más nuevos, pero falló la instalación en Gingerbread.

Por lo tanto, si su aplicación requiere un modo jumbo debido a la molesta restricción de 65k, intente cortar algunos códigos / cadenas que no se usan y vuelva a configurar el modo jumbo en falso.

classes.dex no llega a la .apk final. Ejecutando gradlew --offline clean && gradlew --offline assembleDebug arreglaba cosas para mí todo el tiempo. A partir de ese momento, puede volver a iniciar la aplicación desde Android Studio.

EDITAR: Antes de lo que dije antes, vaya al Administrador de tareas y conhost.exe procesos cmd.exe y conhost.exe (o solo aquel en el que se aapt ). De aapt contrario, aapt se bloqueará a partir de ahora cuando se inicie desde la línea de comandos con el infame error -1073741819 .

No obstante, desinstalé la aplicación y obtuve el error INSTALL_FAILED_DEXOPT. Si está trabajando con Android Studio / gradle: gradle clean hizo el truco para mí, Cheers.

Obtuve el mismo error y lo solucioné aumentando el tamaño del almacenamiento interno.

El almacenamiento interno inicialmente estaba configurado en 32MB (lo sé) y luego instalé un par de aplicaciones, lo que dejó menos espacio del necesario para instalarlo.

en build.gradle change comstackdo y comstackdo a la última versión. Y funcionó para mí.

================

 android { compileSdkVersion 22 buildToolsVersion "22" 

Tuve el mismo problema hoy con Android Studio en un nuevo dispositivo virtual. Parecía que había descargado la imagen x86_64 , recreando el VD con la imagen x86 equivalente arreglado.

Esperaba obtener un INSTALL_FAILED_NO_MATCHING_ABIS en este caso, pero de alguna manera estaba atrapado con INSTALL_FAILED_DEXOPT

Estaba teniendo este problema al intentar instalar en dispositivos 2.3 (bien en 4.0.3). Terminó siendo debido a un proyecto lib que estaba usando tenía múltiples jarros que eran para cosas que ya estaban en Android, por ejemplo, analizadores HttpClient y XML, etc. Al ver logcat me llevó a encontrar esto ya que me decía que se estaba salteando clases debido a que ya Estar presente. Buen error original inútil allí!

Tuve esta prueba de error en un dispositivo real. Borrar el caché / desinstalar, reiniciar todo no funcionó para mí, eliminar el contenido de la carpeta de comstackción sí 🙂 (Android studio)

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 puede ser ‘dexed’ debido al uso de una clase que no está disponible en la API de Target 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.

Considera usar proguard para reducir tu APK. Tengo el mismo problema si trato de instalar una gran APK de 25MB + en un viejo dispositivo Samsung Galaxy Ace 2.3.6 sin encoger / optimizar el código con proguard.

El modo Jumbo y reiniciar el dispositivo no funciona.

En mi caso, esto fue un error en el plugin de kotlin, versión 1.1.51

https://youtrack.jetbrains.com/issue/KT-20034

Este error apareció en dispositivos antiguos (API 16).

Se corrigió eliminando las anotaciones de @Parcelize y reemplazándolas con este generador de código: https://github.com/nekocode/android-plotble-intellij-plugin-kotlin

Tuve este problema cuando había algunos caracteres Unicode en mis nombres de métodos (debido, por ejemplo, a la copia / pegado de un archivo de PowerPoint) que a Dalvik no le gustó. Puede ver esto mirando la salida de Logcat mientras intenta instalar el APK.

Esto fue en un dispositivo real.

Se solucionó corrigiendo la fecha en el teléfono (era una fecha predeterminada 01.01.1980) y limpiando el proyecto.

Cambié mi versión de la versión 4 de Android para sdk 21 y tuve este error. Así que volví la versión de soporte para la versión anterior (antes de 21) y funcionó. El error estaba ocurriendo solo en Android 2.3

Me encontré con este problema cuando estaba tratando de actualizar las nuevas herramientas de comstackció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 comstackción, problema resuelto. Buena suerte.

Asegúrese de tener instalados todos los SDK que necesita y Gradle se dirige a la versión correcta.

Estaba teniendo el mismo problema, pero fue causado por la actualización de mi dispositivo a Android 5.0 y luego me olvidé de cambiar todas mis comstackciones para atacarlo.

Me he enfrentado a este problema porque había algunas discrepancias con las bibliotecas que estaba usando

Se resolvió actualizando el sdk de Android a la última versión. Verifique el administrador del SDK si muestra una actualización, luego actualice completamente, limpie su proyecto y luego ejecútelo, funcionará 🙂

Tal vez esto ayude:

  1. Borre los datos del usuario antes de iniciar el emulador
  2. limpiar el proyecto
  3. eliminar dependencias que no son necesarias …

El error se resuelve al eliminar la carpeta de comstackción de la aplicación principal. Se volverá a crear.

Como este parece ser un problema que me he encontrado muchas veces y esta vez ninguna de las soluciones compartidas me ha ayudado, seguiré publicando lo que me ayudó personalmente y lo que creo que puede ayudar a alguien más en el futuro:

Vaya al directorio de su proyecto y encuentre el archivo build / intermediate / dex-cache / cache. Eliminarlo – como su nombre lo indica, es un archivo dex en caché que puede estar desactualizado si ha realizado cambios en las dependencias de su proyecto, versión de herramientas de comstackción, etc.

En Android Studio, haga clic en Archivo -> Invalidar cachés / reiniciar. Esto hizo el truco para mí cuando recibía este error cuando recibí este error en el dispositivo no en el emulador.