Comment résoudre L'erreur D'installation de DEXOPT?
je développe une application Android en utilisant Android 2.2, ma taille APK application est de 22,5 Mo, et je voudrais créer une nouvelle construction pour une tablette Samsung. J'ai eu l'erreur suivante:
INSTALL_FAILED_DEXOPT
comment résoudre ce genre d'erreur?
30 réponses
redémarrer l'émulateur du Android SDK and AVD Manager
et sélectionner l'option Wipe User Data
a résolu ce problème pour moi.
vous pouvez trouver l'option comme mise en évidence dans l'image ci-dessous donnée:
votre ancienne version de l'application que vous installez a des bibliothèques / bocaux dépendants qui ont été changés. J'ai rencontré ce problème lors de la mise à jour d'autres fichiers jar que mon application réfringait.
Vous devez Désinstaller votre ancienne version et que vous n'avez plus de questions...
Paramètres-->Applications-- > Gérer les Applications-->[trouver et désinstaller votre application]
Les erreursINSTALL_FAILED_DEXOPT ne doivent pas apparaître. Comme
[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 vous utilisez Android Studio , essayez de nettoyer votre projet:
Build > Nettoyage De Projet
Il semble que ce message d'erreur peut avoir de nombreuses causes différentes. Le cas que je suis tombé sur était sur un appareil réel (donc les bases de l'émulateur solutions ne s'appliquent pas).
en gros, lorsque cela se produit, réglez votre filtre Logcat sur Verbose ou Warn , ce qui vous aidera à obtenir plus d'information sur la cause.
dans mon cas, des versions multiples ou contradictoires de JUnit étaient incluses dans le projet Je travaillais sur (une grande base de code existante). L'application Android que j'essayais de déployer avait plusieurs projets de bibliothèques comme dépendances, et j'avais par erreur configuré les choses pour inclure plusieurs fichiers JAR Jun.
j'ai découvert ceci basé sur une série de messages Logcat. Notez que la ligne WARN donne la cause:
DEBUG/dalvikvm(4808): DexOpt: 'Ljunit/framework/TestSuite;' 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)
tenter 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'instant d'exécuter est la nouvelle fonctionnalité d'android studio 2.0 (je ne l'ai jamais utilisé, il >.< )
comment désactiver : préférences -> construire, d'exécution et de déploiement -> instantanée exécuter -> désactiver, puis travaille comme de la magie
Profitez-en!
j'avais besoin de désactiver L'exécution instantanée pour corriger le problème. Pour désactiver L'exécution instantanée sur OS X, allez à Android Studio > Préférences > construction, exécution, déploiement > exécution instantanée puis retirez la tique de Enable Instant Run to hot swap code/resource changes on deploy (default enabled)
.
je travaille avec Android Studio et j'ai eu la même erreur.
supprimer le dossier de construction du principal Modul a aidé. Après la suppression, tout redevient normal.
i 'a changé le RAM taille et la capacité de stockage interne de l'émulateur maintenant, il fonctionne... in eclipse AVD manager
INSTALL_FAIL_DEXOPT a habituellement à voir avec la limite placée sur les classes.dex. Sur quelque chose de pré-ICS dexopt échouera sur quelque chose de plus de 5 Mo. Les versions récentes D'Android utilisent un tampon de 8 ou 16 Mo.
Vérifiez la taille des classes.dex dans votre APK. Il serait également bon de voir ce que votre méthode compte est, car dex a une limite de méthode/champ 65536.
, les Références:
erreur lors de l'installation application (INSTALL_FAILED_DEXOPT)
j'ai rencontré ce problème après avoir activé le drapeau jumboMode dans le build ( dex.force.jumbo=true
). Tout a bien fonctionné sur les nouveaux appareils Android, mais l'installation a échoué sur Gingerbread.
donc si votre application nécessite le mode jumbo en raison de la restriction gênante de 65k, essayez de couper quelques chaînes de code inutilisées et de définir le mode jumbo retour à false.
classes.dex
ne pas se rendre à la finale .apk
. Exécuter gradlew --offline clean && gradlew --offline assembleDebug
a réparé des choses pour moi à chaque fois. À partir de ce point, vous pouvez commencer à lancer L'application à partir D'Android Studio à nouveau.
EDIT: avant ce que j'ai dit ci-dessus Allez à Gestionnaire des tâches et tuer tous les processus cmd.exe
et conhost.exe
(ou juste celui dans lequel aapt
s'est coincé). Sinon aapt
s'écraserait à partir de Maintenant lors de son lancement depuis la ligne de commande avec la fameuse erreur -1073741819
.
j'ai eu le même problème aujourd'hui avec Android Studio sur un nouvel appareil virtuel. Il semblait que j'avais téléchargé l'image x86_64
, recréant la VD avec l'équivalent x86
image corrigé.
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é avec INSTALL_FAILED_DEXOPT
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 propre a fait le tour pour moi, Acclamation.
j'ai eu la même erreur et je l'ai corrigée en augmentant la taille du stockage interne.
le stockage interne a d'abord été réglé à 32Mo(je sais), puis j'ai installé quelques APK dessus, ce qui avait laissé moins d'espace que ce qui était nécessaire pour l'installation.
dans la construction.gradle changement compilé et construire à la dernière version. et il a travaillé pour moi.
================
android {
compileSdkVersion 22
buildToolsVersion "22"
j'ai eu ce problème en essayant d'installer sur des périphériques 2.3 (très bien sur 4.0.3). Il a fini par être due à un projet lib que j'utilisais avait plusieurs pots qui étaient pour les choses déjà dans android par exemple HttpClient et XML parsers etc En regardant logcat
, j'ai trouvé ça en me disant qu'il sautait les cours parce qu'ils étaient déjà présents. Belle erreur originale inutile là!
j'ai fait tester cette erreur sur un vrai appareil. Effacer la mémoire cache/désinstaller, redémarrer tout n'a pas fonctionné pour moi, de supprimer le contenu du dossier de création a fait :) (Android studio)
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 "déxée" en raison d'une utilisation d'une classe non disponible sur L'API cible spécifiée par exemple. Ou peut-être une classe à laquelle vous faites référence dans votre code, mais la bibliothèque qu'il n'est pas emballé.
envisagez d'utiliser proguard pour rétrécir votre APK. J'ai le même problème si j'essaie d'installer un grand 25MB+ APK sur un vieux périphérique Samsung Galaxy Ace 2.3.6 sans rétrécir/optimiser le code avec proguard.
mode Jumbo et redémarrage de l'appareil ne fonctionne pas.
dans mon cas, c'était un bug dans le plugin kotlin, version 1.1.51
https://youtrack.jetbrains.com/issue/KT-20034
cette erreur est apparue sur de vieux appareils (API 16).
a corrigé ceci en enlevant @Parcelize annotations et en les remplaçant par ce générateur de code: https://github.com/nekocode/android-parcelable-intellij-plugin-kotlin
cela a semblé être lié à l'espace disque pour moi. Un émulateur nouvellement roulé 5.1 démarre avec une erreur "faible sur l'espace disque" - et en regardant les propriétés de l'émulateur, l'espace alloué par défaut pour le stockage interne est de 800 Mo qui semble faible.
Solution, donc était d'augmenter ce (je suis allé à 4GB). Curieusement l'émulateur démarre toujours avec le même avertissement d'espace disque, mais réinitialisation aux valeurs d'usine (Paramètres --> Sauvegarde et de Restauration à l'intérieur de l'émulateur) résolu entièrement pour je.
Juste un peu bizarre que cela ne fonctionne pas hors de la boîte avec les paramètres par défaut.
j'ai eu ce problème quand il y avait quelques caractères Unicode dans Mes noms de méthode (en raison, de toutes choses, copier/coller à partir d'un fichier powerpoint) que Dalvik n'a pas aimé. Vous pouvez le voir en regardant la sortie Logcat tout en essayant d'installer L'APK.
C'était sur un vrai appareil.
Résolu en corrigeant l'Heure de la date sur le téléphone (c'était une date par défaut 01.01.1980), et le nettoyage du projet.
j'avais changé ma version d'android version 4 Prise en charge pour sdk 21 et avait cette erreur. Je suis donc retourné à la version de support pour l'ancienne version (avant 21) et ça a fonctionné. L'erreur ne se produisait que dans android 2.3
j'ai rencontré ce problème lorsque j'ai essayé de mettre à jour les nouveaux outils de construction 24.0.1. La connexion Internet a été perdue et les outils n'a pas été téléchargé avec succès, après que j'ai eu cette erreur et a passé beaucoup de temps à essayer de le résoudre. Mais quand j'ai mis à jour avec succès construire des outils-Problème résolu. Bonne chance.
assurez-vous que vous avez tous les SDK dont vous avez besoin installé et Gradle cible la bonne version.
j'avais le même problème, mais il a été causé par la mise à jour de mon appareil à Android 5.0 et puis oublier de changer toutes mes constructions pour le cibler.
j'ai fait face à ce problème parce qu'il y avait un certain décalage avec les bibliothèques que j'utilisais
résolu par mise à jour du sdk android au plus tard. Vérifiez le gestionnaire de SDK si il montre la mise à jour puis entièrement mettre à jour, nettoyer votre projet et puis exécuter, il fonctionnera:)
peut-être que cela aidera:
- Effacer les données de l'utilisateur avant de lancer l'émulateur
- nettoyer le projet
- supprimer les dépendances qui ne sont pas nécessaires....
l'erreur se résout en supprimant le dossier de compilation de votre application principale.Il va se recréer à nouveau.
comme cela semble être un problème que j'ai moi-même rencontré à plusieurs reprises et cette fois aucune des solutions partagées ne m'a aidé, je vais encore poster ce qui m'a aidé personnellement et ce que je crois peut aider quelqu'un d'autre à l'avenir:
allez dans le répertoire de votre projet et trouvez le fichier build/intermediates/dex-cache/cache. Le supprimer - comme son nom l'indique, c'est un fichier DEX en cache qui peut être dépassé si vous avez modifié les dépendances de votre projet, la version des outils de construction, etc.