Android IllegalArgumentException: déjà ajouté
J'ai créé une application android qui utilise android-support-v4.jar
.
Maintenant, quand j'ajoute un android bibliothèque pour ce projet, j'obtiens cette erreur lors de la construction:
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoIcsImpl;
[2012-11-08 16:02:31 - ShoppingApp Android] Conversion to Dalvik format failed with error 1
La bibliothèque, je suis en train d'ajouter de est Facebook SDK, ce qui arrive aussi à utiliser android-support-v4.jar.
Seule solution pour cette erreur que j'ai trouvé a été de retirer de la bibliothèque à partir de l'un des chemins de génération, mais je ne peux pas le faire - toutes les options toutes désactivé lorsque je sélectionne ce pot.
Ici est plein de trace de l'erreur:
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoIcsImpl;
at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
at com.android.dx.dex.file.DexFile.add(DexFile.java:163)
at com.android.dx.command.dexer.Main.processClass(Main.java:486)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:455)
at com.android.dx.command.dexer.Main.access$400(Main.java:67)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:394)
at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)
at com.android.dx.command.dexer.Main.processOne(Main.java:418)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:329)
at com.android.dx.command.dexer.Main.run(Main.java:206)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.android.ide.eclipse.adt.internal.build.DexWrapper.run(DexWrapper.java:180)
at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeDx(BuildHelper.java:703)
at com.android.ide.eclipse.adt.internal.build.builders.PostCompilerBuilder.build(PostCompilerBuilder.java:577)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:321)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:396)
at org.eclipse.core.internal.resources.Project$1.run(Project.java:618)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)
at org.eclipse.core.internal.resources.Project.internalBuild(Project.java:597)
at org.eclipse.core.internal.resources.Project.build(Project.java:124)
at com.android.ide.eclipse.adt.internal.project.ProjectHelper.doFullIncrementalDebugBuild(ProjectHelper.java:1000)
at com.android.ide.eclipse.adt.internal.launch.LaunchConfigDelegate.launch(LaunchConfigDelegate.java:147)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:855)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:704)
at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1047)
at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1251)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
[2012-11-08 16:02:31 - ShoppingApp Android] Dx 1 error; aborting
[2012-11-08 16:02:31 - ShoppingApp Android] Conversion to Dalvik format failed with error 1
OriginalL'auteur Skiba | 2012-11-08
Vous devez vous connecter pour publier un commentaire.
Le processus de construction vérifie la somme de contrôle de chaque pot et génère cette erreur si le pot est trouvé deux fois et les pots ont différentes sommes de contrôle.
Cela signifie que vous avez la même bibliothèque deux fois, mais deux versions différentes du fichier jar, qui n'a pas de sens.
Si vous avez ajouté une bibliothèque de projet, vous n'avez pas besoin de l'appui de la bibliothèque dans votre application, vous pouvez le supprimer car il est hérité de la bibliothèque de projet.
Vous pourriez vouloir mettre à jour le pot de la bibliothèque de prise en charge dans la bibliothèque de projet.
Edit: vous ne jouez pas avec le build path plus, vos bibliothèques dossiers doivent être "libs" et il apparaîtra dans le projet en tant que "Android dépendances". Ensuite, vous retirez le pot de votre dossier libs de votre application, et peut-être mettre à jour l'un de la bibliothèque de projet.
qu'entendez-vous par "toutes les options" et par "sélectionné" ?
Quand je vais dans préférences dans eclipse->Build Path, sélectionnez ce pot, tous les boutons à la droite sont désactivés. Ceux editer, supprimer, etc.
juste édité, en fait, vous ne devriez pas le faire comme ça, mais avec le dossier libs.
Eh bien, ne savent pas à ce sujet. Merci ça a fonctionné! Et deuxième merci pour une réponse instantanée
OriginalL'auteur galex
Cette erreur signifie que vous avez certaines classes inclus plus d'une fois dans votre construction. J'ai résolu le même problème avec mvn dépendances dans eclipse par décocher l'option "Exporter maven convenances" dans le Projet de configuration/Java Build Path/Export.
OriginalL'auteur zasadnyy