web-dev-qa-db-fra.com

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

Dans mon application Android sous Eclipse, l'erreur suivante apparaît.

EXCEPTION INATTENDUE DE PREMIER 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 recherché 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).

903
Michel

J'ai résolu le problème.

Ceci est un conflit de fichiers JAR.

Il semble que j'ai deux fichiers JAR sur mon chemin de construction qui incluent le même package et les mêmes classes.

smack.jar et Android_maps_lib-1.0.2

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

271
Michel

Sélectionnez Projet "Propriétés" Java Chemin de construction "Bibliothèques et supprimez-les sauf le" Android X.Y "(dans mon cas, Android 1.5). cliquez sur OK. Sélectionnez 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 disposiez d’un fichier JAR situé quelque part dans vos dossiers de projet (j’avais copié le fichier JAR Admob dans mon dossier src) et que vous l’aviez ensuite ajouté en tant que Java Path Library. Il ne s'affiche pas dans l'Explorateur de packages, vous ne le remarquerez donc pas, mais il sera compté deux fois, ce qui provoquera l'erreur redoutée de Dalvik 1.

Une autre raison possible pourrait être un conflit de nom de paquet. Supposons que vous ayez un paquetage com.abc.xyz et une classe nommée A.Java à l'intérieur de ce paquetage, ainsi qu'un autre projet de bibliothèque (ajouté à la dépendance de ce projet) contenant le même com.abc.xyz.A.Java, obtiendrez exactement la même erreur. Cela signifie que vous avez plusieurs références au même fichier A.Java et que vous ne pouvez pas le construire correctement.

Cela peut également se produire si vous modifiez/ajoutez accidentellement ou sciemment quelque chose dans le fichier de chemin de classe manuellement. Dans certains cas, vous pouvez ajouter manuellement le chemin Android.jar au fichier de chemin de classe afin de générer Java doc.On. Le fait de supprimer le code généré après javadoc fonctionnera correctement. Cochez cette case si un problème survient.

825
user408841

Solution Windows 7:

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

Modifiez la ligne suivante pour résoudre 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
126
Noah

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

95
Ton Snoei

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

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

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

53
Kocus

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 une incompatibilité entre les fichiers Android-support-v4 de mon projet et le projet Facebook référencé dans mon projet.

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

Ma solution précédente:

J'ai essayé toutes les solutions possibles 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 au projet -> décocher Construire automatiquement

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

Exportez votre application sous forme d'APK signé tandis que Construire automatiquement est toujours désactivé

40
Paveliko

Voici un autre scénario et 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 les dossiers source liés pointant vers vos projets de bibliothèque (ils portent des noms sous la forme "Nom de la bibliothèque_src").
  2. Sélectionnez tous ces projets, cliquez avec le bouton droit de la souris, choisissez " le chemin de construction " -> " Supprimer du chemin de construction ".
  3. Choisissez " Dissociez également le dossier du projet ", puis cliquez sur " Oui ".
  4. Nettoyer, reconstruire et redéployer le projet.

Il semble que la raison en soit que certaines versions précédentes de dossiers source de projets de bibliothèque ADT liés aux projets "enfants" et que la combinaison ADT/Dex actuelle ne sont plus compatibles avec cette solution.

EDIT: ceci est confirmé par un Android Dev Blog, en particulier celui-ci - voir le 8ème paragraphe.

30
mikołak

Allez au projet et décochez l'option "Construire automatiquement" .Essayez ensuite d'exporter le projet et l'erreur disparaîtra.

29
kgandroid

Cela peut également être causé si vous avez ajouté le fichier Android.jar à votre chemin de construction, peut-être par une solution rapide accidentelle dans Eclipse. Supprimez-le avec un clic droit Projet -> chemin de compilation -> configurez le chemin de construction -> Android.jar, supprimez .

27
Thomas Dignan

Nettoyer simplement le projet a fonctionné pour moi chaque fois que cette erreur s'est produite.

25
BTR

La seule et unique solution que j'ai trouvée aujourd'hui après quatre heures de test de toutes les solutions est une combinaison des nombreuses solutions fournies ici:

  • Delete project from Eclipse
  • Supprimer des fichiers dans \bin et \gen du dossier du projet
  • Supprimez les références aux bibliothèques dans le fichier .classpath du dossier racine du projet
  • Redémarrez Eclipse avec la ligne de commande: Eclipse -clean
  • Import project
  • Faites un clic droit sur le projet - sélectionnez Properties> Java Build Path> Libraries et supprimez tout le reste de Android XX.Y
  • Enfin, clean project, attend la construction automatique ou Build it
  • Lancer et maintenant ça marche! Au moins pour moi...

J'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 ferai plus face à cela ...

16
Darkendorf

Juste pour les autres personnes qui ont toujours ce problème et qui ont essayé les réponses ci-dessus mais qui ont toujours l'erreur (ce qui était mon cas), ma solution était alors de supprimer le projet d'Eclipse et de le réimporter.

Cela a rendu la bibliothèque Android à ajouter à nouveau à mes bibliothèques référencées. J'ai donc maintenant deux fichiers JAR Android référencés. J'ai donc supprimé l'un d'entre eux et le compile correctement.

Solution: supprimez le projet d'Eclipse IDE, puis réimportez-le à nouveau, puis recherchez les solutions ci-dessus.

14
Mido

Couru dans ce problème moi-même aujourd'hui. Le nettoyage et la reconstruction ne résolvent pas le problème. Supprimer et réimporter le projet n’a pas aidé non plus.

Je l'ai finalement retrouvé dans un mauvais ajout à mon fichier .class. Je pense que cela a été ajouté par les outils de plug-in lorsque j'essayais de résoudre un autre problème. Le supprimer permettait de supprimer le "Le format de conversion au format Dalvik a échoué avec l'erreur 1":

<classpathentry kind="lib" path="C:/dev/repository/Android-sdk-windows/platforms/Android-3/Android.jar">
    <attributes>
        <attribute name="javadoc_location" value="file:/C:/dev/repository/Android-sdk-windows/docs/reference"/>
    </attributes>
    <accessrules>
        <accessrule kind="nonaccessible" pattern="com/Android/internal/**"/>
    </accessrules>
10
Joe Fernandez

Pour moi, une référence JAR supplémentaire était apparue dans mon chemin de génération. J'ai supprimé ceci et cela fonctionne maintenant.

9
brux

J'ai résolu ce problème en utilisant la bibliothèque Sherlock ActionBar dans mon projet. Vous pouvez faire l'étape suivante, c'est un travail pour moi.

  1. Faites un clic droit sur votre projet, sélectionnez Propriétés.
  2. Une boîte de dialogue apparaîtra, sélectionnez "Chemin de construction Java" dans le menu de gauche.
  3. Supprimez "Dépendances Android" et "Bibliothèques privées Android" dans le panneau de droite, puis cliquez sur OK.
  4. Nettoyez votre projet (sélectionnez le menu Projet -> Nettoyer)
  5. Faites un clic droit sur votre projet, sélectionnez Android Outils -> Corriger les propriétés du projet.
  6. Nettoyer le projet une fois de plus.
  7. Redémarrez votre ordinateur
  8. Ouvrez Eclipse et Export apk

J'espère que cela vous aidera.

8
mvmanh

Mon problème était dû à ADT version 12.0 et à l'intégration de ProGuard. Ce bogue est bien documenté et la solution se trouve dans la documentation.

La solution est ici

ligne de commande ProGuard

8
Croc

La mise à jour de Proguard à la dernière version m'a résolu le problème.

  • Mon chemin de proguard était C:\Program Files (x86)\Android\android-sdk\tools\proguard\
  • J'ai téléchargé la nouvelle version de ici
  • et a remplacé les dossiers bin et lib

DIEU MERCI!

7
Asaf Pinhassi

Dans mon cas, le problème concerne le projet API OpenFeint. J'ai ajouté OpenFeint en tant que projet de bibliothèque:

library project]![1]![Enter image description here.

Il est également ajouté au chemin de construction, ADT tools 16 donne une erreur avec ce scénario.

Faites un clic droit sur votre projet et cliquez sur le chemin de construction, configurez le chemin de construction, puis affichez l'image et supprimez votre projet OpenFeint à partir d'ici. Tout est fait :)

Enter image description here

7
AZ_

J'ai trouvé autre chose. Android utilise le répertoire /libs pour les fichiers JAR. J'ai vu l'erreur "Erreur de la conversion au format Dalvik avec l'erreur 1" à plusieurs reprises, toujours lorsque je me suis trompé 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 répertoire /libs et en basculant le chemin de classe vers la nouvelle version. Cela a causé l'erreur Dalvik.

Lorsque j'ai supprimé l'un des fichiers JAR Roboguice du dossier /libs, l'erreur a disparu. Apparemment, Android récupère tous les fichiers JAR de /libs, quels que soient ceux que vous spécifiez dans le chemin de construction Java. Je ne me souviens pas exactement, mais je pense que Android a commencé à utiliser /libs par défaut à partir de Android 4. (sandwich à la crème glacée, ICS).

7
Christine

En général, il semble que ce problème survienne lorsqu'il y a des fichiers JAR inutiles dans le chemin de génération.

J'ai fait face à ce problème en travaillant sur IntelliJ IDEA . Pour moi, c'est arrivé 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 défini sur "tester" dans les propriétés du module.

7
mindreader

Aucune des solutions précédemment proposées ne fonctionnait pour moi. Dans mon cas, le problème est survenu lorsque je suis passé du référencement d’un dossier de code source d’une bibliothèque à l’utilisation du fichier JAR de la bibliothèque. Il y avait initialement un projet de bibliothèque Android répertorié sous la section Propriétés du projet d’application Android,\\Android page\Library, et la bibliothèque a également été comparée dans lien vers le répertoire source de la bibliothèque.

En premier lieu, je viens de supprimer le lien de 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 la suivante (après avoir modifié le chemin de génération et la référence à la source de la bibliothèque):

  • supprimer correctement le lien du répertoire source de la bibliothèque en supprimant la référence de la page Propriétés du projet d'application\Android

  • ajouter le fichier JAR de la bibliothèque au chemin de génération du projet d'application comme d'habitude.

6
superjos

Aucune des solutions énumérées ne fonctionnait 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 cliquant dessus avec le bouton droit de la souris, Build Path -> add to build path. Cela a jeté l'erreur de conversion Dalvik. Il disait que j'avais "déjà inclus" une classe de ce fichier JAR. J'ai regardé autour du répertoire du projet et trouvé que l'endroit où il était "déjà inclus" était en fait le répertoire bin. J'ai supprimé le fichier JAR du répertoire bin et actualisé le projet dans Eclipse. L'erreur a disparu!

6
Andrew

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 rajouté Android 1.6), puis de rajouter le fichier externe. Fichier JAR.

5
Jim Rhodes

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é):

Java.lang.IllegalArgumentException: already added: package/MyClassclass;
[2011-01-19 14:54:05 - ...]: Dx1 error; aborting
[2011-01-19 14:54:05 - ...] Conversion to Dalvik format failed with error 1

Vérifiez donc si vous ajoutez un fichier jar avec des classes dupliquées dans votre projet. Si oui, essayez de supprimer l'un d'entre eux.

Cela a fonctionné pour moi.

5
Seynorth

Souvent, le nettoyage du projet NE résout PAS ce problème.

Mais fermer le projet dans Eclipse puis le rouvrir semble résoudre le problème dans ce cas ...

5
Andrew Mackenzie

J'ai rencontré ce problème mais ma solution était double. 1.) Je devais ajouter une version cible Android sous projet -> propriétés -> Android. 2.) Je n'avais pas tous les "add-ons tiers" de Google. Cliquez dans AVD SDK Manager sous packages disponibles -> add-on tiers -> Google Inc. J'ai téléchargé tous les SDK et cela a résolu mon problème.

5
THE_DOM

Toutes les solutions ci-dessus n'ont pas fonctionné pour moi. Je n'utilise aucun fichier .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 le réimportant (créer un nouveau projet à partir de sources existantes).

5
olivierg

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 plusieurs projets (y compris un projet de bibliothèque Android) et plusieurs fois. J'ai dû utiliser hocus-pocus pour que tout soit inclus une seule fois, même si Maven est censé s'occuper de tout cela.

Par exemple, j'avais une bibliothèque principale globalmentor-core, qui était également utilisée par globalmentor-google et globalmentor-Android (cette dernière étant une bibliothèque Android). Dans le globalmentor-Android pom.xml, je devais marquer la dépendance comme "fournie" et l'exclure d'autres bibliothèques dans lesquelles elle était incluse de manière transitoire:

    <dependency>
        <groupId>com.globalmentor</groupId>
        <artifactId>globalmentor-core</artifactId>
        <version>1.0-SNAPSHOT</version>
        <!-- Android-maven-plugin can't seem to automatically keep this from being
             included twice; it must therefore be included manually (either explicitly
             or transitively) in dependent projects -->
        <scope>provided</scope>
    </dependency>

Ensuite, dans l'application finale pom.xml, je devais utiliser la bonne ruse pour n'autoriser qu'un seul chemin d'inclusion --- ainsi que not incluant explicitement la bibliothèque principale:

    <!-- Android-maven-plugin can't seem to automatically keep this from being
        included twice -->
    <!-- <dependency> -->
    <!-- <groupId>com.globalmentor</groupId> -->
    <!-- <artifactId>globalmentor-core</artifactId> -->
    <!-- <version>1.0-SNAPSHOT</version> -->
    <!-- </dependency> -->

    <dependency>
        <groupId>com.globalmentor</groupId>
        <artifactId>globalmentor-google</artifactId>
        <version>1.0-SNAPSHOT</version>
        <exclusions>
            <!-- Android-maven-plugin can't seem to automatically keep this from
                being included twice -->
            <exclusion>
                <groupId>com.globalmentor</groupId>
                <artifactId>globalmentor-core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>com.globalmentor</groupId>
        <artifactId>globalmentor-Android</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
5
Garret Wilson

Il suffit de nettoyer le projet

Si cela ne fonctionne pas, essayez les autres solutions.

5
Yassin

Dans mon cas

projet-> propriétés-> chemin de construction Java -> dans l'ordre et l'onglet d'exportation -> décochez la case Android-support-v4. pot

5
Mufrah

Aucune des réponses ici n'a aidé dans mon cas.

Pour moi, le problème était que mvn Eclipse:eclipse générait une entrée de chemin de classe qui était une référence de projet à un projet de bibliothèque Android. Cependant, il s'agissait de ne s'affiche pas dans Eclipse. construire les paramètres de chemin! Cela signifie que les classes de la bibliothèque se sont retrouvées deux fois dans le dexer, une fois à partir de la référence de projet cachée et une fois à partir du fichier JAR de la bibliothèque liée.

J'ai dû ouvrir le fichier .classpath avec un éditeur de texte et supprimer l'élément projects manuellement. Cela a résolu le problème.

4
Matthias

Je sais qu'il a déjà répondu, mais voici ma solution:

Mon projet Android provenait d'un référentiel Subversion , et je venais de faire un achat en tant que nouveau projet. Je devais ajouter manuellement mes bibliothèques (Android et Java) au chemin de construction, sinon cela ne me permettrait pas de compiler. Ensuite, j'obtiendrais l'erreur ci-dessus.

Je devais créer un nouveau projet Android, puis copier manuellement les modifications.

4
yuudachi

Mon problème était dans l'intégration de Ant + bibliothèque ProGuard + SDK AdMob + mode Debug. Je construisais debug APK en utilisant Ant et j'ai ajouté le fichier JAR du kit de développement logiciel (SDK) AdMob dans le répertoire libs/. Eclipse générait normalement le fichier debug APK, mais Ant ne le pouvait pas. Je recevais l'erreur suivante.

[s'appliquent] EXCEPTION DE HAUT NIVEAU INATTENDUE: [s'appliquent] Java.lang.IllegalArgumentException: déjà ajouté: Lcom/google/ads/AdActivity; [appliquer] sur com.Android.dx.dex.file.ClassDefsSection.add (ClassDefsSection.Java:123)

ProGuard était également activé pour la construction du débogage dans mon build.xml (la valeur par défaut est désactivée):

<target name="-debug-obfuscation-check">
    <property name="proguard.enabled" value="true"/>
</target>

C'était le problème. D'une certaine manière, ProGuard et AdMob SDK ne vivent pas ensemble en mode débogage. ProGuard n'a pas masqué la classe AdActivity et est donc apparue dans bin/proguard/obfuscated.jar unobfuscated, mais la même classe existe dans le fichier JAR du kit SDK AdMob. Eclipse construisait Debug APK sans ProGuard, donc cela fonctionnait bien.

Ma solution consistait donc simplement à désactiver ProGuard pour les versions de débogage dans build.xml. J'espère que ça aide quelqu'un.

4
smok

Cette réponse est fondamentalement ce que beaucoup de gens essaient de dire, mais beaucoup de gens peuvent ne pas comprendre. Alors...

"Une autre raison peut être si vous avez un fichier JAR situé quelque part dans votre dossier de projet, puis que vous l'ajoutez en tant que bibliothèque de chemins Java. Il ne s'affiche pas dans l'explorateur de packages, vous ne le remarquerez donc pas. , mais il faut compter deux fois, provoquant l’erreur redoutée de Dalvik. " répondu 2 janvier 12 à 6:23 Rashmi.B

Signification:

Si vous avez par exemple ces deux bibliothèques (.jar) dans votre dossier lib Libraries (.jar) in your *lib* folder

et puis ces deux dossiers sont également ajoutés à votre chemin de construction: Libraries in your build path

signifie qu'ils sont comptés deux fois, ce qui vous donne l'erreur!

Solution:

  1. Supprimez ces bibliothèques de votre chemin de construction ET supprimez également les "dépendances Android": Remove libs that are in your *lib* folder from the build path!
  2. Nettoyer tous les projets
  3. Exportez votre projet
  4. Prendre plaisir! :)
4
Tanasis

Dans mon cas, j'ai ajouté un bocal externe. J'ai donc déplacé la position du bocal externe en haut de la référence Android dans le projet Prop ---> Java buildPath ---> Références du projet

4
sha

J'ai eu exactement la même erreur avec un projet contenant protobuf lite ( Protocol Buffers de Google) dans son classpath. J'imagine que la raison en était le protobuf-lite.jar qui se trouvait dans mon chemin de classe et que le dossier du projet a été créé dans mon ordinateur précédent. Lorsque j'ai téléchargé Maven et reconstruit le fichier protobuf-lite.jar, puis l'a ajouté de nouveau comme bibliothèque utilisateur à mon projet, tout a bien fonctionné.

3
Jubei

Pour moi, le problème était que j'avais défini le mauvais niveau de conformité du compilateur (1.8 au lieu de 1.7) .

Cette réponse résolue:

Dans la section Project SDK, lorsque vous ajoutez un Android SDK, vous devez fournir le Java SDK et tous mes Android SDK utilisent Java 8. en tant que SDK, il crée les fichiers de classe avec la mauvaise version, même si le niveau de projet est 1.7 (je ne sais pas pourquoi, je suppose que tout a été choisi par niveau de projet). Maintenant, j'ai changé le SDK (la partie Java version "1.x.0".)

3
Luigi04

J'ai personnellement réussi à résoudre ce problème en modifiant manuellement le fichier project.properties dans le projet Eclipse.

Ce que c'était:

target=Android-16
Android.library.reference.1=..\\..\\github\\ActionBarSherlock\\library
Android.library.reference.2=../../github/Android-numberpicker/library

Ce que j'ai changé pour que le problème soit parti:

target=Android-16
Android.library.reference.1=../../github/ActionBarSherlock/library
Android.library.reference.2=../../github/Android-numberpicker/library

Ce fichier a été not corrigé automatiquement à l'aide de l'outil "Corriger les propriétés du projet".

3
eightx2

Ce qui a fonctionné pour moi sont les suivants:

  • Nettoyer la construction complètement
  • Suppression du fichier Android.jar étranger que j'ai trouvé dans Project/Properties/Libraries.
3
leandroid

J'utilisais ADT r14 et chaque fois que j'essayais d'ajouter un projet de bibliothèque, j'obtenais cette erreur. Pour moi, ce qui a bien fonctionné a été simplement de mettre à jour l’ADT à la dernière version. Cela a résolu le problème instantanément. J'ai essayé presque toutes les solutions de contournement données sur stackoverflow mais rien d'autre ne fonctionnait vraiment pour moi.

3
Swati Rawat

J'utilise ADT 7 et les autres correctifs ne fonctionnent pas (mais je les ai quand même faits).

Ensuite, j'ai copié proguard.cfg à partir d'un autre projet et l'ai simplement collé dans l'ancien dossier de projet ADT. Et wallah , cela a fonctionné.

2
societyofrobots

je suis également confronté à ce problème lorsque je suis ajouter le même fichier JAR avec des versions différentes, je supprime simplement l'ancienne version jar et nettoie le projet, il fonctionne très bien pour moi.

2
Brajendra Pandey

Cette erreur est due à

  1. avoir plus d'un fichier JAR.
  2. Si le fichier JAR contient des fichiers de classe similaires, le format .dx ne peut pas être analysé.

Solution:

  1. créez et choisissez le fichier JAR approprié.
  2. obtenir le dernier.
2
Thiyagu

Dans mon cas, le problème a été créé après la mise à jour d'Eclipse et d'ADT en mars 2011. Dans mon projet, j'utilisais un fichier JAR qui produisait des problèmes à reconstruire et aucune des solutions précédentes ne fonctionnait. Il m'a fallu quelques jours pour tout essayer, chercher de haut en bas sans solution satisfaisante. Apparemment, il y avait une double référence au fichier .jar.

Finalement je :

  1. supprimé toutes les références des bibliothèques,
  2. supprimé le formulaire de fichier physique dans l'application.
  3. a obtenu le .jar (situé dans un répertoire différent en dehors du projet) en utilisant "Ajouter des fichiers JAR externes"
  4. réalisé un projet "propre",
  5. mettre à jour les références dans le module appelant le pot avec (ctrl) + (shift) + O

et il a finalement compilé.

2
Mowild developer

J'ai parcouru les étapes dans cette réponse et je n'ai toujours pas obtenu de résolution. J'ai continué à chercher en ligne et j'ai constaté que vous pouviez obtenir cette erreur si vous tentiez d'exporter un APK alors qu'un appareil Android était connecté à l'ordinateur.

Déconnecter mon appareil, puis fermer le projet, redémarrer l'ordinateur, ouvrir le projet et le nettoyer a fonctionné pour moi tous les trois fois que cela s'est produit.

1
jakewp11

Dans mon cas, débrancher mon téléphone de la clé USB était tout ce qu'il fallait pour réparer cette erreur.

1
Nathaniel Jones

J'ai eu la même erreur, et tout essayé ci-dessus, mais rien ne m'a aidé.

Mes projets sont attachés au système de contrôle de source GIT et je me suis rendu compte qu’il existait certaines tâches liées à GIT lors de l’exportation vers l’application Andorid. Ensuite, j'ai validé toutes les modifications apportées au référentiel GIT et les erreurs ont disparu.

Ainsi, si vous utilisez GIT pour le contrôle de code source et que rien de ce qui précède ne vous aide, essayez de valider toutes les modifications apportées au référentiel GIT (et éventuellement, Push to upstream) et essayez à nouveau d'exporter.

1
Goran

Cela m’arrive généralement après une longue période d’exploitation d’Eclipse ou après la construction réussie d’un apk signé.

En ce qui concerne mon expérience avec cela, le correctif, je viens redémarrer Eclipse.

1

L'erreur devrait être définitivement corrigée à partir des versions de prévisualisation AD17 17/Outils r17! Au moins quelques cas, sinon tous.

1
Artem Russakovskii

Juste Project > Clean a travaillé pour moi.

1
activesince93

J'ai eu le même problème lorsque j'ai essayé d'exporter mon projet. Rien à voir dans la console.

Pour moi, la solution consistait à mettre à jour proguard vers la dernière version, j'espère que cela aidera quelqu'un.

1
Lectere

Pour les utilisateurs de NewRelic:

Si vous avez intégré le fichier jar newrelic dans votre application, cela se produit lorsque la version newrelic est périmée.

Solution:

  • Mettez à jour le fichier jar newrelic à la dernière version. Sur Eclipse, il suffit de cliquer avec le bouton droit de la souris sur le projet et de mettre à jour newrelic. Ou vous pouvez télécharger la nouvelle version directement.
1
amalBit

Dans la plupart des cas, ce problème est dû à une version défectueuse ou corrompue de Proguard qui, pour une raison étrange, sera souvent installée à partir de Androidofficiel _ Gestionnaire de SDK.

N'éditez pas le fichier de batte Proguard pour éviter d'autres problèmes, si vous rencontrez ce problème, téléchargez la dernière version stable de Proguard de site officiel et remplace tous les fichiers de proguard dans

Android-sdk\tools\proguard

avec les derniers fichiers proguard extraits de l’archive téléchargée.

Cela n'a aucun sens de supprimer toutes les dépendances des bibliothèques externes, si un développeur ajoute une bibliothèque à son projet, la bibliothèque est probablement nécessaire.

0
Silverstorm

Cette erreur était due à plusieurs fichiers que j'avais exclus du chemin de génération en cours de suppression, mais non de la liste d'exclusion.

Projet -> Propriétés -> Java Chemin de construction -> onglet Source -> dossier projet/src -> double-cliquez sur Exclu -> Supprimez tous les fichiers qui n'existent plus dans le projet.

0
InsanityOnABun

J'ai eu ce problème avec le néon Eclipse et JDK 1.8. Après le passage à JDK 1.7, le problème a été résolu.

enter image description here

0
Eugen

Rien ne m'a aidé, mais la solution suggérée ici a fonctionné comme un charme:

c'est-à-dire ajouter la ligne -optimizations !code/allocation/variable à proguard-project.txt

0
ercan

J'ai nettoyé mon projet d'application principal ET le projet de bibliothèque Android qu'il utilise. Résolu le problème

0
Lawrence Tierney

Je viens d'installer le dernier Eclipse avec la dernière API, les derniers SDK et outils, mais des années plus tard, cette erreur ne vieillit pas. Je perds une journée pour le comprendre. J'ai tout essayé. En vain. Parce que ce message est très générique et que de nombreux problèmes l’évoqueront. Donc, les solutions suggérées par certains ne fonctionneront pas pour d'autres.

Une bonne première approche consiste à aller dans Fenêtre> Préférences> Android> Construire et décocher "Ignorer le packaging et le dexing ...". De cette façon, vous aurez plus d'indices sur votre erreur spécifique lors de la construction, pas seulement lors de l'exportation.

Dans mon cas, j'ai un "version de fichier de classe non prise en charge par Dx ..." . Cette erreur que je n'ai pas vue rapportée ici. Eh bien, sur cette base, j'ai découvert que certains vieux bocaux que j'utilisais étaient compilés avec 1.6 et d'autres avec 1.7. J'ai donc changé le niveau de conformité du compilateur par défaut IDE à la version 1.6 (Fenêtre> Préférences> Java> Compilateur) et, une fois le nettoyage et la reconstruction terminés, j'ai enfin pu générer mon APK. .

0
PFROLIM

J'ai essayé chacun et tout mais rien n'a fonctionné.

Ce qui est intéressant, c’est que si nous exportions Android application à l’aide de proguard, nous obtenions une erreur "la conversion au format Dalvik échouait avec l'erreur 1", mais si nous n'utilisions pas proguard lors de l'exportation, le fichier APK était créé avec succès.

Enfin, l'un des fichiers de notre projet Android avait un fichier .class de plus de 1,5 Mo. Sa taille était à l'origine de ce problème. Nous avons divisé cette classe en plusieurs classes plus petites et le problème a disparu. .

0
2intor

J'ai eu le même problème. Quand j'ai vérifié, j'ai vu qu'il y avait 2 classes avec le même nom, 1 dans chacun des fichiers jar externes que j'avais ajoutés. Je devais ensuite supprimer 1 du fichier jar. Heureusement, j'ai eu un autre fichier jar pour celui que j'avais enlevé.

0
Nakul Sudhakar

J'ai trouvé la solution différemment ... https://stackoverflow.com/a/14948244/1014288

Merci à cela, vous pouvez corriger pas de suppression et des trucs

0
Mashiah

Aucune de ces réponses n'a fonctionné pour moi. Mon problème est causé par JUnit et hamcrest. Voir aussi Java.lang.IllegalArgumentException: déjà ajouté: Lorg/hamcrest/BaseDescription; La conversion au format Dalvik a échoué avec l'erreur 1

0
Bevor

il est préférable d'inclure tous les fichiers * .jar dans le répertoire "lib" de l'arborescence des dossiers du projet. De cette manière, vous n'aurez pas besoin de définir le chemin de génération en accédant aux propriétés du projet. "lib" est déjà un chemin de construction

Autre cas de Android sorcellerie, si rien ne fonctionne, essayez d'augmenter votre versionCode et versionName de 1 dans le manifeste.

Cela a fonctionné pour moi.

0
Josh

Si vous utilisez le SDK Leadbolt ads dans votre application et que vous combinez les "annonces de notification" et les "annonces d'affichage", vous devez utiliser pubxappCom.jar au lieu de pubxapp.jar pour les annonces de notification, sinon vous obtenez cette erreur!

Bon codage!

0
Nick

Rien n'a fonctionné pour moi ici, j'ai dû changer mon fichier proguard pour ajouter cette ligne:

-keep class !mycode.** { *; }

qui garde n'importe quel code qui n'est pas mon paquet.

0
j2emanue

Bonjour, j’avais Android SDK Build tools 18.1.1 et Windows XP. alors mon application fonctionnait correctement.

Mais j'ai mis à jour mon système avec Windows 7 et également Android SDK Build tools to 19 pour avoir les dernières configurations.

Mais mon projet contient le fichier xercesImpl-2.9.1.jar alors, lorsque je commençais à exécuter mon application avec de nouvelles configurations/mises à jour,

Conversion to Dalvik format failed with error 1 while parsing org/Apache/xerces/impl/xpath/regex/ParserForXMLSchema.class

J'ai donc passé en revue toutes les réponses qui sont mentionnées à cette question mais que je n'ai pas pu résoudre. Je me suis demandé pendant 4 jours, puis j’ai trouvé this le lien qui m’a sauvé la vie. Après avoir lu ceci, j’ai appris que ce problème était dû à xercesImpl-2.9.1.jar avec Android SDK Build tools à 19.

Je l'ai donc rétrogradé à Android Les outils de compilation du SDK sont passés à 18.1.1. Et je me suis débarrassé de ce problème.

je publie ma réponse ici afin que, si quelqu'un devait faire face à ce problème, il puisse le résoudre.

Cela m'a fait frustré. L'espoir aidera les autres.

0
Neha Shukla

-Retirez toutes vos bibliothèques de votre chemin de construction Java. Et ajoutez-le encore. - Nettoyez votre projet.

Exécuter.

0
Pratik Dasa

L'API Google sur les dépendances pose ce problème. Après avoir retiré ça marche bien.

0
Ahmad