Je développe une application Android sous Android 2.2, la taille de mon APK d'application est de 22,5 Mo, et je souhaite créer une nouvelle version pour une tablette Samsung. J'ai eu l'erreur suivante:
INSTALL_FAILED_DEXOPT
Comment résoudre ce genre d'erreur?
Réponses:
Le redémarrage de l'émulateur à partir de
Android SDK and AVD Manager
et la sélection de l'optionWipe User Data
a résolu ce problème pour moi.Vous pouvez trouver l'option mise en évidence dans l'image ci-dessous:
la source
adb kill-server
alorsadb start-server
résoudre votre problème. Peut-être qu'une ancienne application existe, puis désinstallez-la d'abord.Cela semblait lié à l'espace disque pour moi. Un émulateur 5.1 nouvellement roulé démarre avec une erreur «espace disque faible» - et en regardant les propriétés de l'émulateur, l'espace par défaut alloué pour le stockage interne est de 800 Mo, ce qui semble faible.
La solution a donc été d'augmenter cela (je suis passé à 4 Go). Curieusement, l'émulateur démarre toujours avec le même avertissement d'espace disque, mais sa réinitialisation d'usine (Paramètres -> Sauvegarder et restaurer dans l'émulateur) l'a entièrement résolu pour moi.
Juste un peu étrange que cela ne fonctionne pas directement avec les paramètres par défaut.
la source
Votre ancienne version de l'application que vous installez comporte des bibliothèques / fichiers JAR dépendants qui ont été modifiés. J'ai rencontré ce problème lors de la mise à jour d'autres fichiers jar que mon application était en train de réfréner.
Vous devrez désinstaller votre ancienne version et vous ne devriez plus avoir de problèmes ...
Paramètres -> Applications -> Gérer les applications -> [Rechercher et désinstaller votre application]
Les erreurs INSTALL_FAILED_DEXOPT ne doivent pas éclater. Comme
Whoo Hoo.
la source
Si vous utilisez Android Studio , essayez de nettoyer votre projet:
Construire> Projet propre
la source
Il semble que ce message d'erreur puisse avoir de nombreuses causes différentes. Le cas que j'ai rencontré était sur un appareil réel (donc les solutions de base d'émulateur ne s'appliquaient pas).
En gros, lorsque cela se produit, réglez votre filtre Logcat à verbeux ou WARN , qui vous aidera à obtenir plus d' informations sur la cause.
Dans mon cas, plusieurs versions ou en conflit de JUnit étaient incluses dans le projet sur lequel je travaillais (une grande base de code existante). L'application Android que j'essayais de déployer avait plusieurs projets de bibliothèque en tant que dépendances, et j'avais configuré par erreur les choses pour inclure plusieurs fichiers jar JUnit.
J'ai découvert cela sur la base d'une série de messages Logcat. Notez que la ligne WARN donne la cause:
la source
Ran dans cela avec Android Studio 3.4.1 mais en utilisant un émulateur plus ancien (5.0). Cette procédure (sur Mac) a résolu le problème:
la source
J'ai changé la taille de la RAM et la capacité de stockage interne de l'émulateur Now IT IS Working ... dans eclipse AVD Manager
la source
essayez ma réponse https://stackoverflow.com/a/34918549/3737254
si vous utilisez android studio 2.0, désactivez l'exécution instantanée.
Pour info, l'exécution instantanée est une nouvelle fonctionnalité d'Android Studio 2.0 (je ne l'ai jamais utilisée>. <)
comment désactiver: préférences -> construction, exécution et déploiement -> exécution instantanée -> désactiver, puis fonctionne comme par magie
Prendre plaisir!
la source
J'avais besoin de désactiver Instant Run pour résoudre le problème. Pour désactiver Instant Run sur OS X, accédez à Android Studio > Préférences > Build, Execution, Deployment > Instant Run, puis supprimez la coche
Enable Instant Run to hot swap code/resource changes on deploy (default enabled)
.la source
dexopt error. Application failed to install
. J'ai essayé ces derniers avant de trouver ceciadb kill-server
adb start-server
:, redémarrage d'Android Studio et réinitialisation d'usine de mon appareil.La seule solution qui a fonctionné pour moi pour résoudre ce problème était d'augmenter la RAM de la VM à 4 Go.
la source
J'ai eu le même problème aujourd'hui avec Android Studio sur un nouvel appareil virtuel. Il est apparu que j'avais téléchargé l'
x86_64
image, recréant le VD avec l'x86
image équivalente corrigée.Je m'attendais à obtenir un
INSTALL_FAILED_NO_MATCHING_ABIS
dans ce cas, mais d'une manière ou d'une autre, j'étais coincé avecINSTALL_FAILED_DEXOPT
la source
x86
échoué. Après avoir téléchargé l'image et changé l'émulateur,x86_64
l'erreur a disparu. J'ai utilisé l'image système API 21.x86_64
image au lieu de celle-x86
ci. J'utilisais également un API 21 AVD (Nexus 5).Je travaille avec Android Studio et j'ai eu la même erreur.
La suppression du dossier de construction du module principal a aidé. Après avoir tout supprimé, revenez à la normale.
la source
INSTALL_FAIL_DEXOPT a généralement à voir avec la limite placée sur classes.dex. Sur tout ce qui est pré-ICS, dexopt échouera sur tout ce qui dépasse 5 Mo. Les versions récentes d'Android utilisent une mémoire tampon de 8 ou 16 Mo.
Vérifiez la taille de classes.dex dans votre APK. Il serait également bon de voir quel est votre nombre de méthodes, car dex a une limite de 65536 méthodes / champs.
Références:
Erreur lors de l'installation de l'application (INSTALL_FAILED_DEXOPT)
https://www.facebook.com/notes/facebook-engineering/under-the-hood-dalvik-patch-for-facebook-for-android/10151345597798920
Comment réduire le code - Limite de méthode de 65k dans Dex
la source
J'ai rencontré ce problème après avoir activé le drapeau jumboMode dans build (
dex.force.jumbo=true
). Tout a bien fonctionné sur les appareils Android plus récents, mais l'installation a échoué sur Gingerbread.Donc, si votre application nécessite le mode jumbo en raison de la restriction agaçante de 65k, essayez de couper certains codes / chaînes inutilisés et de redéfinir le mode jumbo sur false.
la source
classes.dex
ne parvient pas à la finale.apk
. Courirgradlew --offline clean && gradlew --offline assembleDebug
des choses fixes pour moi à chaque fois. À partir de là, vous pouvez recommencer à lancer l'application depuis Android Studio.EDIT: Avant que j'ai dit ci - dessus pour aller Gestionnaire des tâches et tuer tous
cmd.exe
et lesconhost.exe
processus (ou tout simplement celui qui aaapt
obtenu bloqué). Sinon,aapt
cela planterait à partir de maintenant lors du lancement à partir de la ligne de commande avec l'erreur infâme-1073741819
.la source
build.gradle
fichier de projet racine . Parmi les dépendances buildscript, il devrait y en avoirclasspath 'com.android.tools.build:gradle:1.0.0-rc4'
.J'ai eu la même erreur et je l'ai corrigée en augmentant la taille du stockage interne.
Le stockage interne était initialement réglé à 32 Mo (je sais), puis j'ai installé quelques apks dessus, ce qui avait laissé moins d'espace que ce qui était nécessaire pour celui à installer.
la source
vérifier l'espace de stockage sur votre appareil
la source
J'ai fait désinstaller l'application et j'ai quand même eu l'erreur INSTALL_FAILED_DEXOPT. Si vous travaillez avec Android Studio / gradle: gradle clean a fait l'affaire pour moi, Cheers.
la source
dans build.gradle, le changement est compilé et construit vers la dernière version. et cela a fonctionné pour moi.
================
la source
beaucoup de réponses ici, mais peut-être que cela peut aider quelqu'un J'ai eu ce problème avec un appareil réel et le problème était avec D8
essayez d'ajouter ceci à votre gradle.properties et cela fonctionne pour moi
la source
J'avais ce problème en essayant d'installer sur des appareils 2.3 (bien sur 4.0.3). Il a fini par être en raison d'un projet lib j'utilisais eu plusieurs pots qui étaient pour des choses déjà android par exemple HttpClient et parseurs XML , etc. En regardant
logcat
m'a amené à trouver ce qu'il me disait qu'il sautait des cours en raison de leur être déjà présent. Belle erreur d'origine inutile là-bas!la source
J'ai eu ce test d'erreur sur un vrai appareil. Effacer le cache / désinstaller, tout redémarrer n'a pas fonctionné pour moi, la suppression du contenu du dossier de construction a fonctionné :) (Android studio)
la source
Il n'y a pas de solution générique, vous devez trouver l'erreur signalée sur votre Logcat pour pouvoir la comprendre. Parfois, c'est une classe qui ne peut pas être «dexed» en raison de l'utilisation d'une classe non disponible sur l'API cible spécifiée par exemple. Ou il peut s'agir d'une classe à laquelle vous faites référence dans votre code, mais la bibliothèque dans laquelle elle se trouve n'est pas en cours d'empaquetage.
la source
Pensez à utiliser proguard pour réduire votre APK. J'ai le même problème si j'essaie d'installer un grand fichier APK de 25 Mo + sur un ancien appareil Samsung Galaxy Ace 2.3.6 sans réduire / optimiser le code avec proguard.
Le mode Jumbo et le redémarrage de l'appareil ne fonctionnent pas.
la source
Dans mon cas, il s'agissait d'un bogue dans le plugin kotlin, version 1.1.51
https://youtrack.jetbrains.com/issue/KT-20034
Cette erreur est apparue sur les anciens appareils (API 16).
Correction de cela en supprimant les annotations @Parcelize et en les remplaçant par ce générateur de code: https://github.com/nekocode/android-parcelable-intellij-plugin-kotlin
la source
targetSdkVersion 22 // 17 ==========================> définir ce nombre inférieur ou égal à la version du système d'exploitation Android sur les appareils peut aider
la source
J'ai eu ce problème quand il y avait des caractères Unicode dans mes noms de méthodes (à cause, de toutes choses, de copier / coller à partir d'un fichier powerpoint) que Dalvik n'aimait pas. Vous pouvez le voir en regardant la sortie de Logcat tout en essayant d'installer l'APK.
C'était sur un vrai appareil.
la source
Résolu en corrigeant la date et l'heure sur le téléphone (c'était une date par défaut le 01.01.1980) et en nettoyant le projet.
la source
J'avais changé ma version de la prise en charge de la version 4 d'Android pour SDK 21 et j'avais cette erreur. Je suis donc retourné à la version de support de l'ancienne version (avant 21) et cela a fonctionné. L'erreur ne se produisait que dans Android 2.3
la source
J'ai rencontré ce problème lorsque j'essayais de mettre à jour les nouveaux outils de construction 24.0.1. La connexion Internet a été perdue et les outils n'ont pas été téléchargés avec succès, après cela, j'ai eu cette erreur et j'ai passé beaucoup de temps à essayer de la résoudre. Mais lorsque j'ai mis à jour avec succès les outils de construction, le problème est résolu. Bonne chance.
la source