web-dev-qa-db-fra.com

Erreur Android dans Eclipse: "Impossible d'exécuter dex: impossible de fusionner le nouvel index 65799 dans une instruction non jumbo!"

J'essaye un projet Android en utilisant OpenSAML en utilisant Eclipse. J'ai ajouté tous les fichiers JAR requis dans le chemin de génération. Maintenant, lorsque j'exécute le programme en tant qu'application Android, l'erreur suivante apparaît:

[2012-11-18 11:52:59 - Dex Loader] Unable to execute dex: Cannot merge new index 67075 into a non-jumbo instruction!
[2012-11-18 11:52:59 - MyTestProgram] Conversion to Dalvik format failed: Unable to execute dex: Cannot merge new index 67075 into a non-jumbo instruction!

J'ai googlé un peu, mais rien n'est venu. Que pourrait signifier cette erreur?

47
Ripul

Une solution que j'ai trouvée et qui fonctionnait pour moi consistait à ajouter dex.force.jumbo=true à mon project.properties

Ceci a été signalé à l'adresse: https://groups.google.com/forum/?fromgroups=#!topic/adt-dev/tuLXN9GkVas

En supposant que vous exécutiez ADT 21, cette fonctionnalité n’était pas disponible dans les versions précédentes.

54
Malachi

Le même problème ... viens de mettre

dex.force.jumbo=true

dans la première ligne de project.properties

14
Rino

Si vous utilisez gradle build, ajoutez simplement les options dexOptions dans build.gradle pour activer le mode Jumbo:

Android {
    dexOptions {
        jumboMode = true
    }
}

N'oubliez pas de lancer "gradle clean" avant votre nouveau bâtiment.

13
gary

J'ai eu le même problème, mais mon IDE était IntelliJ IDEA 13. Dans cette version, l'instruction dex.force.jumbo dans le fichier project.properties est ignorée.

Pour l'activer, allez simplement dans Paramètres | Compilateur | Android DX et sélectionnez l’option Forcer le mode jumbo.

J'espère que ça aide (c'est la seule question que j'ai pu trouver concernant l'OS).

6
Sebastiano

Le simple ajout de jumboMode=true n'a pas fonctionné pour la construction de mon diplôme. Cependant, cela a fonctionné (cité par Xavier dans le groupe adt-dev en réponse à un bogue signalé dans cette zone):

Msgstr "" "Essayez de supprimer manuellement tous les dossiers de construction et de reconstruire, en rendant Sûr que le dexOptions.jumboMode est défini sur true dans le projet?

Il y a un problème où la construction du projet racine n'est pas supprimée dans le tâche propre qui contient des informations sur le pré-indexé bibliothèques. "

4
mobileasumma

Ajout de quelques explications:

Cela se produit lorsque Eclipse tente de construire de manière incrémentielle, lorsqu'une modification augmente le nombre de constantes de chaîne dans l'application. Le dex original avait des instructions non-jumbo et le nouveau dex qui y était fusionné avait des instructions jumbo. Faire un nettoyage va montrer que cela fonctionne lorsque vous construisez à partir de zéro.

Tant que le nombre de chaînes dans votre application augmente de façon monotone, les générations incrémentielles fonctionneront à l'avenir.

2

J'ai eu le même problème, mais dans mon cas, la commande "dex.force.jumbo = true" ne résout pas le problème . J'essaie de mettre à jour JDK et JRE, ce qui résout le problème.

J'espère que cette réponse aide

0
Fahmi Sidik