Dans mon application Android dans Eclipse, j'obtiens l'erreur suivante.
EXCEPTION INATTENDUE DE HAUT NIVEAU:
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 longtemps cherché 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).
android
dalvik
android-sdk-1.6
Michel
la source
la source
Réponses:
Allez dans Projet »Propriétés» Chemin de génération Java »Bibliothèques et supprimez tout sauf« Android XY »(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 les dossiers de votre projet (j'avais copié le fichier JAR Admob dans mon dossier src) et ensuite l'ajouté en tant que bibliothèque de chemin Java. Il n'apparaît pas sous l'explorateur de packages, vous ne le remarquez donc pas, mais il est compté deux fois, ce qui provoque l'erreur redoutée de Dalvik 1.
Une autre raison possible pourrait être les conflits de nom de package. Supposons que vous ayez un package
com.abc.xyz
et une classe nommés à l'A.java
intérieur de ce package, et un autre projet de bibliothèque (qui est ajouté à la dépendance de ce projet) qui contient le mêmecom.abc.xyz.A.java
, alors vous obtiendrez exactement la même erreur. Cela signifie que vous avez plusieurs références au même fichierA.java
et que vous ne pouvez pas le créer correctement.Dans d'autres cas, cela peut se produire si vous modifiez / ajoutez accidentellement ou sciemment quelque chose dans le fichier de chemin de classe manuellement. Dans certains cas, nous pouvons ajouter manuellement le chemin android.jar au fichier classpath pour générer le document java. le code fonctionnera très bien.Veuillez vérifier également si l'un se produit toujours.
la source
J'ai résolu le problème.
Il s'agit d'un conflit de fichier JAR.
Il semble que j'ai deux fichiers JAR sur mon chemin de build qui incluent le même package et les mêmes classes.
smack.jar
etandroid_maps_lib-1.0.2
La suppression de ce package de l'un des fichiers JAR a résolu le problème.
la source
ScoreloopUI
projet à mon jeu AndEngine, ces pots interfèrent également avec le vôtre, même s'ils ne sont pas sur le chemin de construction de votre propre projet.Solution Windows 7:
Confirmé que le problème est provoqué par 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:
à
la source
Vous pouvez résoudre ce problème facilement (avec les outils de développement Eclipse Android, Build: v22.0.1-685705) en désactivant le menu> "Projet"> "Construire automatiquement" lors de l'exportation d'une application Android (non) signée. Après cela, n'oubliez pas de le rallumer.
la source
Si vous avez ADT révision 12+, vous devez mettre à jour votre proguard de 4.4 -> 4.6 (comme décrit ici ). Vous devez également laisser le fichier ... \ bin \ proguard.bat sous la forme d'origine.
Il suffit de le télécharger à partir du Web et de copier le dossier lib du package téléchargé vers:
[Répertoire d'installation du SDK Android] \ tools \ proguard \ lib
la source
<sdk>/tools/proguard
répertoire et déplacé le répertoire décompressé completproguard4.11
vers l'ancien chemin. Voila! Maintenant, si seulement je pouvais récupérer mon heure précédente ... -_-EDIT (nouvelle solution):
Il semble que la solution précédente ne soit qu'un contournement. J'ai finalement réussi à résoudre définitivement le problème: dans mon cas, il y avait un décalage dans les fichiers android-support-v4 dans mon projet et dans le projet Facebook référencé dans mon projet.
J'ai trouvé cette erreur en effectuant une vérification des peluches (Outils Android / Exécuter des peluches: rechercher les erreurs courantes)
Ma solution précédente:
J'ai essayé toutes les solutions possibles sur ce site - rien n'y fait !!!
Enfin, j'ai trouvé une réponse ici: https://groups.google.com/forum/#!topic/actionbarsherlock/drzI7pEvKd4
Étapes faciles:
la source
Voici un autre scénario et une solution:
Si vous rencontrez ce problème récemment après avoir mis à jour l'ADT pour Eclipse:
Il semble que la raison en soit que certaines versions précédentes des dossiers source de projet de bibliothèque liés à ADT aux projets "enfants", et la combinaison ADT / Dex actuelle ne soit plus compatible avec cette solution.
EDIT: ceci est confirmé par une entrée du blog Android Dev, en particulier celle-ci - voir le 8ème paragraphe.
la source
Allez dans Projet, puis décochez "Générer automatiquement". Ensuite, essayez d'exporter le projet et l'erreur a disparu.
la source
Cela peut également être provoqué si vous avez ajouté un
Android.jar
fichier à votre chemin de génération, peut-être par un correctif rapide accidentel dans Eclipse. Supprimez-le en cliquant avec le bouton droit sur Projet -> chemin de génération -> configurer le chemin de génération -> android.jar , supprimez.la source
Le simple nettoyage du projet a fonctionné pour moi chaque fois que cette erreur s'est produite.
la source
Ma propre et unique solution que j'ai trouvée aujourd'hui après quatre heures de test de toutes les solutions, est une combinaison de nombreuses solutions fournies ici:
Delete
projet d'Eclipse\bin
et\gen
depuis le dossier du projet.classpath
fichier du dossier de projet racineeclipse -clean
Import
projetProperties
>Java Build Path
>Libraries
et supprimer tout le reste deAndroid XX.Y
clean
projet, attendre construction automatique ouBuild
ilJ'ai essayé chaque étape à la fois et de nombreuses combinaisons, mais seule la succession de toutes les étapes à la fois a réussi! J'espère que je ne vais plus y faire face ...
la source
bin
dossier l'a fait pour moi.Juste pour les autres personnes qui ont toujours ce problème et qui ont essayé les réponses ci-dessus mais qui obtiennent toujours l'erreur (ce qui était mon cas), alors ma solution était de supprimer le projet d'Eclipse et de le réimporter à nouveau.
Cela a fait que la bibliothèque Android a été ajoutée à nouveau à mes bibliothèques référencées, alors maintenant j'ai deux fichiers JAR Android référencés, donc j'ai supprimé l'un d'entre eux et maintenant ça compile très bien.
Solution: supprimez le projet d'Eclipse IDE, puis réimportez-le à nouveau, puis recherchez les solutions ci-dessus.
la source
Je me suis attaqué à ce problème aujourd'hui. Le nettoyage et la reconstruction n'ont pas résolu le problème. La suppression et la réimportation du projet n'ont pas aidé non plus.
Je l'ai finalement retracée à un mauvais ajout à mon fichier .class. Je pense que cela a été ajouté par les outils du plugin lorsque j'essayais de résoudre un autre problème, en le supprimant, il s'est débarrassé de l'erreur de construction "La conversion au format Dalvik a échoué avec l'erreur 1":
la source
Pour moi, une référence JAR supplémentaire était apparue dans mon chemin de génération. J'ai supprimé cela, et cela fonctionne maintenant.
la source
Mon problème a été causé par la version 12.0 d'ADT et l'intégration de ProGuard. Ce bug est bien documenté et la solution est dans la documentation
La solution est là
Ligne de commande ProGuard
la source
J'ai traité ce problème lors de l'utilisation de la bibliothèque Sherlock ActionBar dans mon projet. Vous pouvez faire l'étape suivante, cela fonctionne pour moi.
J'espère que cela vous aidera.
la source
Dans mon cas, le problème est en fait avec le projet API OpenFeint. J'ai ajouté OpenFeint comme projet de bibliothèque:
.
Il est également ajouté dans le chemin de génération, les outils ADT 16 donnent une erreur avec ce scénario.
Faites un clic droit sur votre projet et cliquez sur le chemin de génération, configurez le chemin de génération, puis voyez l'image et supprimez votre projet OpenFeint d'ici et tout est fait :)
la source
J'ai trouvé autre chose. Android utilise le
/libs
répertoire des fichiers JAR. J'ai vu l'erreur "La conversion au format Dalvik a échoué avec l'erreur 1" plusieurs fois, toujours lorsque j'ai fait une erreur dans mes fichiers JAR.Maintenant, j'ai mis à niveau Roboguice vers une version plus récente, en plaçant le nouveau fichier JAR dans le
/libs
répertoire et en basculant le chemin d'accès aux classes vers la nouvelle version. Cela a provoqué l'erreur Dalvik.Lorsque j'ai supprimé l'un des fichiers JAR Roboguice du
/libs
dossier, l'erreur a disparu. Apparemment, Android récupère tous les fichiers JAR/libs
, quels que soient ceux que vous spécifiez dans le chemin de génération Java. Je ne me souviens pas exactement, mais je pense qu'Android a commencé à utiliser/libs
par défaut à partir d' Android 4.0 (Ice Cream Sandwich, ICS).la source
La mise à jour de Proguard vers la dernière version l'a résolu pour moi.
C:\Program Files (x86)\Android\android-sdk\tools\proguard\
DIEU MERCI!
la source
En général, il semble que ce problème survienne lorsqu'il existe des fichiers JAR inutiles dans le chemin de génération.
J'ai rencontré ce problème en travaillant sur IntelliJ IDEA . Pour moi, cela s'est produit parce que j'ai ajouté les bibliothèques JUnit et Mockito qui étaient en cours de compilation au moment de l'exécution. Cela devait être réglé sur "testing" dans les propriétés du module.
la source
Aucune des solutions précédemment proposées n'a fonctionné pour moi. Dans mon cas, le problème s'est produit lorsque je suis passé du référencement d'un dossier de code source de bibliothèque à l'utilisation du fichier JAR de bibliothèque. Initialement, un projet de bibliothèque Android était répertorié dans la section Propriétés du projet d'application Android \ Page Android \ Bibliothèque, et la bibliothèque était également comparée dans l'arborescence de l'explorateur de projet en tant que lien vers le répertoire source de la bibliothèque.
En premier lieu, je viens de supprimer le lien du répertoire de l'arborescence du projet et j'ai ajouté la bibliothèque JAR au chemin de génération, mais cela a provoqué l'exception.
La procédure correcte était (après avoir modifié le chemin de génération et remis la référence à la source de la bibliothèque):
supprimer correctement le lien du répertoire source de la bibliothèque en supprimant réellement la référence de la page Propriétés \ Android du projet d'application
ajouter le JAR de la bibliothèque au chemin de génération du projet d'application comme d'habitude.
la source
Aucune des solutions énumérées n'a fonctionné pour moi.
Voici où j'avais un problème:
J'ai ajouté le fichier JAR externe jSoup au chemin de mon projet en le plaçant d'abord dans un dossier source appelé "libs", puis en faisant un clic droit dessus, Build Path -> ajouter au build path. Cela a jeté l'erreur de conversion Dalvik. Il a dit que j'avais "déjà inclus" une classe de ce fichier JAR. J'ai regardé autour du répertoire du projet et j'ai trouvé que l'endroit où il était "déjà inclus" était en fait le
bin
répertoire. J'ai supprimé le fichier JAR dubin
répertoire et actualisé le projet dans Eclipse et l'erreur a disparu!la source
Toutes les solutions ci-dessus n'ont pas fonctionné pour moi. Je n'utilise aucun .jar précompilé. J'utilise les erreurs LVL et Dalvik, toutes liées à la bibliothèque de licences du marché.
Le problème a été résolu en supprimant le projet principal et en réimportant (créer un nouveau projet à partir de sources existantes).
la source
J'ai eu le même problème et aucune de ces solutions n'a fonctionné. Enfin, j'ai vu dans la console que l'erreur était due à une classe dupliquée (une dans le projet existant, une dans le fichier jar ajouté):
Vérifiez donc si vous ajoutez un pot avec des classes dupliquées dans votre projet. Si oui, essayez d'en supprimer un.
Ça a marché pour moi.
la source
Souvent pour moi, le nettoyage du projet NE résout PAS ce problème.
Mais la fermeture du projet dans Eclipse puis sa réouverture semblent le corriger dans ces cas ...
la source
J'ai rencontré ce problème mais ma solution était double. 1.) J'ai dû ajouter une version cible Android sous projet -> propriétés -> Android . 2.) Je n'avais pas tous les «modules complémentaires tiers» de google. Cliquez dans AVD SDK manager sous les packages disponibles -> add-ons tiers -> Google Inc . J'ai téléchargé tous les SDK et cela a résolu mon problème.
la source
J'utilise Android 1.6 et j'avais un fichier JAR externe. Ce qui a fonctionné pour moi a été de supprimer toutes les bibliothèques, de cliquer avec le bouton droit sur le projet et de sélectionner Outils Android -> * Corriger les propriétés du projet (qui a ajouté Android 1.6), puis de rajouter le fichier JAR externe.
la source
J'ai rencontré ce problème car le plug-in Android-Maven dans Eclipse ne reconnaissait apparemment pas les références transitives et les références référencées deux fois à partir de quelques projets (y compris un projet de bibliothèque Android), et les incluant plus d'une fois. J'ai dû utiliser hocus-pocus pour tout inclure une seule fois, même si Maven est censé s'occuper de tout cela.
Par exemple, j'avais une bibliothèque de base globalmentor-core, qui était également utilisée par globalmentor-google et globalmentor-android (ce dernier étant une bibliothèque Android). Dans le globalmentor-android,
pom.xml
j'ai dû marquer la dépendance comme "fournie" et exclue des autres bibliothèques dans lesquelles elle était transitoirement incluse:Ensuite, dans l'application finale,
pom.xml
j'ai dû utiliser la bonne ruse pour n'autoriser qu'un seul chemin d'inclusion --- ainsi que ne pas inclure explicitement la bibliothèque principale:la source
<extractDuplicates>true</extractDuplicates>
dans le plugin android-maven, le problème a été résolu,mvn install
mais pasmvn deploy
où j'ai eu l'erreur décrite ... vraiment étrangeDans mon cas
projet-> propriétés-> chemin de génération java -> dans l'ordre et onglet d'exportation -> décochez android-support-v4.jar
la source
Nettoyez simplement le projet
Si cela ne fonctionne pas, essayez les autres solutions
la source