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).
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.
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.
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
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.
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
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é
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:
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.
Allez au projet et décochez l'option "Construire automatiquement" .Essayez ensuite d'exporter le projet et l'erreur disparaîtra.
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 .
Nettoyer simplement le projet a fonctionné pour moi chaque fois que cette erreur s'est produite.
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\bin
et \gen
du dossier du projet.classpath
du dossier racine du projetEclipse -clean
Import
projectProperties
> Java Build Path
> Libraries
et supprimez tout le reste de Android XX.Y
clean
project, attend la construction automatique ou Build
itJ'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 ...
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.
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>
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.
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.
J'espère que cela vous aidera.
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
La mise à jour de Proguard à la dernière version m'a résolu le problème.
C:\Program Files (x86)\Android\android-sdk\tools\proguard\
DIEU MERCI!
Dans mon cas, le problème concerne le projet API OpenFeint. J'ai ajouté OpenFeint en tant que projet de bibliothèque:
.
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 :)
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).
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.
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.
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!
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.
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.
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 ...
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.
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).
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>
Il suffit de nettoyer le projet
Si cela ne fonctionne pas, essayez les autres solutions.
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
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.
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.
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.
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 :
et puis ces deux dossiers sont également ajoutés à votre chemin de construction:
signifie qu'ils sont comptés deux fois, ce qui vous donne l'erreur!
Solution:
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
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é.
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".)
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".
Ce qui a fonctionné pour moi sont les suivants:
Android.jar
étranger que j'ai trouvé dans Project/Properties/Libraries
.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.
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é.
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.
Cette erreur est due à
.dx
ne peut pas être analysé.Solution:
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 :
et il a finalement compilé.
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.
Dans mon cas, débrancher mon téléphone de la clé USB était tout ce qu'il fallait pour réparer cette erreur.
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.
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.
L'erreur devrait être définitivement corrigée à partir des versions de prévisualisation AD17 17/Outils r17! Au moins quelques cas, sinon tous.
Juste Project > Clean
a travaillé pour moi.
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.
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:
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.
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.
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
J'ai nettoyé mon projet d'application principal ET le projet de bibliothèque Android qu'il utilise. Résolu le problème
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. .
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. .
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é.
J'ai trouvé la solution différemment ... https://stackoverflow.com/a/14948244/1014288
Merci à cela, vous pouvez corriger pas de suppression et des trucs
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
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.
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!
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.
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.
-Retirez toutes vos bibliothèques de votre chemin de construction Java. Et ajoutez-le encore. - Nettoyez votre projet.
Exécuter.
L'API Google sur les dépendances pose ce problème. Après avoir retiré ça marche bien.