Question "La conversion au format Dalvik a échoué avec l'erreur 1" sur le fichier JAR externe


Dans mon application Android dans Eclipse, j'obtiens l'erreur suivante.

EXCEPTION DE HAUT NIVEAU INATTENDU:
  java.lang.IllegalArgumentException: déjà ajouté: Lorg / xmlpull / v1 / XmlPullParser;
  ....
  La conversion au format Dalvik a échoué avec l'erreur 1

Cette erreur n'apparaît que lorsque j'ajoute un fichier JAR externe spécifique à mon projet. J'ai cherché longtemps la solution possible, mais aucune des solutions possibles ne fonctionne. J'ai même essayé de passer à Android 1.6 au lieu de 1.5 (la version actuelle que j'utilise).


880


origine


Réponses:


Allez dans Projet »Propriétés» Chemin de compilation Java »Bibliothèques et supprimez tout sauf le« Android X.Y »(dans mon cas Android 1.5). cliquez sur OK. Allez dans Projet »Nettoyer» Nettoyer les projets sélectionnés ci-dessous »sélectionnez votre projet et cliquez sur OK. Cela devrait fonctionner.

Il est également possible que vous ayez un fichier JAR situé quelque part dans vos dossiers de projet (j'ai copié le fichier Admob JAR dans mon dossier src) et l'ai ensuite ajouté comme bibliothèque de chemins Java. Il n'apparaît pas sous l'explorateur de paquetages, donc vous ne le remarquez pas, mais il est compté deux fois, provoquant l'erreur redoutée de Dalvik 1.

Une autre raison possible pourrait être les conflits de noms de paquets. Supposons que vous avez un paquet com.abc.xyz et une classe nommée A.java à l'intérieur de ce paquet, et un autre projet de bibliothèque (qui est ajouté à la dépendance de ce projet) qui contient le même com.abc.xyz.A.java, alors vous obtiendrez exactement la même erreur. Cela signifie que vous avez plusieurs références dans le même fichier A.java et ne peut pas le construire correctement.

D'autres façons cela peut se produire si vous accidentellement ou sciemment modifier / ajouter quelque chose dans le fichier de chemin de classe manuellement. Dans certains cas, nous pouvons ajouter le chemin android.jar manuellement au fichier classpath pour générer java doc.On supprimer le qui après javadoc généré le code fonctionnera bien.Veuillez vérifier cela aussi s'il en existe encore un.


821



J'ai résolu le problème.

C'est un conflit de fichier JAR.

Il semble que j'ai deux fichiers JAR sur mon buildpath qui incluent le même paquet et les classes.

smack.jar et android_maps_lib-1.0.2

La suppression de ce package de l'un des fichiers JAR a résolu le problème.


270



Windows 7 Solution:

Confirmé que le problème est dû à la ligne de commande ProGuard dans le fichier
[Répertoire d'installation du SDK Android] \ tools \ proguard \ bin \ proguard.bat

Modifier la ligne suivante résoudra le problème:

call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %*

à

call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9

125



Vous pouvez résoudre ce problème facilement (avec Eclipse Android Developer Tools, Build: v22.0.1-685705) en désactivant menu> "Projet"> "Construire automatiquement" lors de l'exportation de l'application Android (non) signé. Après cela, n'oubliez pas de le rallumer.


94



Si vous avez ADT révision 12+, vous devriez mettre à jour votre proguard de 4.4 -> 4.6 (comme décrit ici). En outre, vous devez laisser le fichier ... \ bin \ proguard.bat sous la forme originale.

Il suffit de le télécharger sur le Web et de copier le dossier lib du paquet téléchargé vers:

[Répertoire d'installation du SDK Android] \ tools \ proguard \ lib


53



EDIT (nouvelle solution):

Il semble que la solution précédente ne soit qu'un bypass. J'ai réussi à résoudre définitivement le problème: Dans mon cas, il y avait une discordance dans les fichiers android-support-v4 dans mon projet et dans le projet Facebook qui est référencé dans mon projet.

J'ai trouvé cette erreur en effectuant une vérification de la peluche (Outils Android / Run Lint: vérifier les erreurs communes)

Ma solution précédente:

J'ai essayé n'importe quelle solution possible sur ce site - rien n'a aidé !!!

Enfin, j'ai trouvé une réponse ici: https://groups.google.com/forum/#!topic/actionbarsherlock/drzI7pEvKd4

Étapes faciles:

Aller à Projet -> décocher Construire automatiquement

Allez dans Projet -> Nettoyer ..., nettoyez le projet de bibliothèque et votre   projet d'application

Exportez votre application en tant que fichier APK signé alors que l'option Construire automatiquement est toujours   désactivée


40



Voici un autre scénario et une solution:

Si vous rencontrez ce problème récemment après la mise à jour de l'ADT pour Eclipse:

  1. Dans votre projet d'application, recherchez tous les dossiers source liés pointant vers vos projets de bibliothèque (ils ont des noms sous la forme "LibraryName_src").
  2. Sélectionnez tous ces projets, faites un clic droit, choisissez "Construire le chemin"->"Supprimer du chemin de construction".
  3. Choisissez "Dissociez également le dossier du projet", et cliquez"Oui".
  4. Nettoyez, reconstruisez et redéployez le projet.

Il semble que la raison en est qu'une ancienne version d'ADT liait les dossiers source du projet Bibliothèque aux projets "enfants", et que la combinaison ADT / Dex actuelle n'est plus compatible avec cette solution.

EDIT: ceci est confirmé par une entrée Android Dev Blog, en particulier celui-là - Voir le 8ème paragraphe.


30



Aller à Projet, puis décochez "Construire automatiquement". Ensuite, essayez d'exporter le projet et l'erreur est partie.


29



Cela peut aussi être causé si vous avez ajouté Android.jar fichier à votre chemin de construction, peut-être par une solution rapide accidentelle dans Eclipse. Retirez-le avec un clic droit Projet -> construire le chemin -> configure le chemin de construction -> android.jar, retirer.


27



Simplement nettoyer le projet a fonctionné pour moi chaque fois que cette erreur est survenue.


25