Android: obtention d'une erreur: la conversion au format Dalvik a échoué
Je suis la création d'une application sur android, et en cours d'exécution dans une erreur et en cherchant sur le net, suis tombé sur votre post sur ce et a changé l'éclipse.ini pour augmenter Xms et Xmx params mais toujours cette erreur ne disparaît pas.
Je suis à l'aide d'Eclipse IDE for Java avec Android SDK 2.1 sur Mac OS. S'il vous plaît aider ou s'il vous plaît m'indiquer quelqu'un qui pourrait savoir.
Btw, cette erreur se produit uniquement quand je ajouter des fichiers jar externes (dont j'ai besoin pour mon projet). Voici la liste des fichiers jar externes que j'ai dans mon classpath.)
- httpclient-4.0.1.jar à partir de apache
- httpcore -4.0.1.jarfrom apache
- commons-codec-1.3.jar à partir de apache
- commons-logging-1.1.1.jar à partir de apache
- json_simple-1.1.jar à partir de google
Voici l'erreur complet:
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Lorg/apache/commons/logging/impl/AvalonLogger;
[2010-05-02 21:57:05 - MyApp] at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
[2010-05-02 21:57:05 - MyApp] at com.android.dx.dex.file.DexFile.add(DexFile.java:143)
[2010-05-02 21:57:05 - MyApp] at com.android.dx.command.dexer.Main.processClass(Main.java:301)
[2010-05-02 21:57:05 - MyApp] at com.android.dx.command.dexer.Main.processFileBytes(Main.java:278)
[2010-05-02 21:57:05 - MyApp] at com.android.dx.command.dexer.Main.access$100(Main.java:56)
[2010-05-02 21:57:05 - MyApp] at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:229)
[2010-05-02 21:57:05 - MyApp] at com.android.dx.cf <http://com.android.dx.cf.direct.ClassPathOpener.pro> .direct.ClassPathOpener.processArchive(ClassPathOpener.java:244)
[2010-05-02 21:57:05 - MyApp] at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:130)
[2010-05-02 21:57:05 - MyApp] at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:108)
[2010-05-02 21:57:05 - MyApp] at com.android.dx.command.dexer.Main.processOne(Main.java:247)
[2010-05-02 21:57:05 - MyApp] at com.android.dx.command.dexer.Main.processAllFiles(Main.java:183)
[2010-05-02 21:57:05 - MyApp] at com.android.dx.command.dexer.Main.run(Main.java:139)
[2010-05-02 21:57:05 - MyApp] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[2010-05-02 21:57:05 - MyApp] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[2010-05-02 21:57:05 - MyApp] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[2010-05-02 21:57:05 - MyApp] at java.lang.reflect.Method.invoke(Method.java:592)
[2010-05-02 21:57:05 - MyApp] at com.android.ide.eclipse.adt.internal.sdk.DexWrapper.run(Unknown Source)
[2010-05-02 21:57:05 - MyApp] at com.android.ide.eclipse.adt.internal.build.ApkBuilder.executeDx(Unknown Source)
[2010-05-02 21:57:05 - MyApp] at com.android.ide.eclipse.adt.internal.build.ApkBuilder.build(Unknown Source)
[2010-05-02 21:57:05 - MyApp] at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:627)
[2010-05-02 21:57:05 - MyApp] at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
[2010-05-02 21:57:05 - MyApp] at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:170)
[2010-05-02 21:57:05 - MyApp] at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:201)
[2010-05-02 21:57:05 - MyApp] at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:253)
[2010-05-02 21:57:05 - MyApp] at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
[2010-05-02 21:57:05 - MyApp] at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:256)
[2010-05-02 21:57:05 - MyApp] at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:309)
[2010-05-02 21:57:05 - MyApp] at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:341)
[2010-05-02 21:57:05 - MyApp] at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:140)
[2010-05-02 21:57:05 - MyApp] at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:238)
[2010-05-02 21:57:05 - MyApp] at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
[2010-05-02 21:57:05 - MyApp] 4 errors; aborting
[2010-05-02 21:57:05 - MyApp] Conversion to Dalvik format failed with error 1
source d'informationauteur Rupesh C
Vous devez vous connecter pour publier un commentaire.
De la r14, ils ont changé la façon dont les bibliothèques externes sont référencés, et il peut causer ce problème. Vous pouvez résoudre le problème en supprimant les dossiers liés (avec _src dans le nom) à partir de l'arborescence des dossiers:
voir http://android-developers.blogspot.co.uk/2011/10/changes-to-library-projects-in-android.html
Vous tentez d'ajouter
org.apache.commons.logging.impl.AvalonLogger
deux fois à votre projet. Ne pas le faire.Aussi, beaucoup de ce que vous ajoutant via des Pots est déjà sur Android, par exemple HttpClient. Cela peut être la cause de votre erreur.
J'ai juste eu mais j'ai fait en sorte d'avance que je n'ai pas de doublon de classe dans mon fichier jar. C'était un autre problème traitant avec de multiples chargement de la même bocal ou quelque chose. Le chemin de la classe et de la liste des Référencés Bibliothèques regardé approprié. Après quelques gesticulations autour, une combinaison de fixes suivants:
Une combinaison de ce qui précède semble résoudre le problème. Si cela se produit à nouveau, je vais être plus prudent pour voir si je peux le reproduire.
J'avais écrit un billet de blog sur une cause possible de cette erreur et de sa solution ici. Espérons que cette aide.
je suppose que vous placez votre pot dans un dossier par exemple de la bibliothèque et puis, chemin de génération à partir de ce dossier. Vous venez de supprimer ce fichier jar et essayez de sélectionner propriété de projet, puis Java build path -> Ajouter des pots fichiers. Il fonctionne très bien.
J'ai eu ce problème parce que j'ai mis le .jar sous mon
src/
répertoire, Eclipse copié sur lebin/
répertoire et essayé de lier les deux endroits. En le déplaçant d'src/
àlibs/
résolu le problème.Mon problème était dû à avoir le même projet a également fait référence dans la bibliothèque de projets. Quelques mises à jour auparavant, c'était un comportement normal, mais depuis le changement dans la bibliothèque de manipulation, j'ai maintenant besoin de supprimer les références de mes projets et ont seulement une bibliothèque de référence.
Toujours, cela m'est arrivé après que j'ai fait une version personnalisée à l'aide d'une commande personnalisée à l'aide de proguard.
J'ai résolu ce problème en vidant le répertoire bin de mon projet eclipse répertoire et le nettoyage du projet (Eclipse menu "projet" --> "nettoyer...")
Évidemment proguard fait un désordre dans ce répertoire par lequel Eclipse devient confus...
Je suis vraiment fou de ce problème en essayant de faire tout le possible des solutions, mais aucune n'a fonctionné pour moi: Nettoyage de projet, Re-construire, en effaçant les bibliothèques, les relier à nouveau les bibliothèques, la mise à jour de proguard, l'édition proguard fichiers...
Finalement la solution était beaucoup plus facile: ProjetAndroid Outils deFixer projet propieties.
Maintenant, je peux exporter le fichier apk.
Clic droit de la src et de la génération des dossiers et sélectionnez Build Path > Supprimer de Build Path.
alors
Clic droit > Build Path > Utiliser comme Source Dossier
j'ai eu que de temps en temps quand j'ai essayé d'exécuter du code dans une incompatibilité de version d'android (ie 2.2 lorsque 4.0 était nécessaire pour un particulier de la bibliothèque de travail)