Essayer d'utiliser le pot KSOAP dans le projet Android et il en compilation
Question
J'essaie d'utiliser la bibliothèque KSOAP dans Android Project pour travailler avec WebServices et j'échoue de la mendicité. J'importe Ce pot et ajoutez-le dans le chemin de construction. Tout semble correct, mais lorsque je construis le projet, j'obtiens cette erreur (il y en avait d'autres similaires, lors de l'utilisation de différentes versions de KSOAP):
[2012-01-17 13:22:27 - TestWSApp] Dx
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Lorg/ksoap2/transport/AndroidHttpTransport;
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:179)
at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeDx(BuildHelper.java:745)
at com.android.ide.eclipse.adt.internal.build.builders.PostCompilerBuilder.build(PostCompilerBuilder.java:634)
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:961)
at com.android.ide.eclipse.adt.internal.launch.LaunchConfigDelegate.launch(LaunchConfigDelegate.java:146)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:854)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:703)
at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:928)
at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1132)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
2012-01-17 14:06:52 - ShapesalesforceApp] Dx 1 erreur; avorter [2012-01-17 14:06:52 - ShapesalesforceApp] La conversion au format Dalvik a échoué avec l'erreur 1
Il y avait des articles disant que je dois reconstruire le projet Maven et créer un nouveau pot car il y a des erreurs.
J'espère juste que quelqu'un connaît une bonne version de travail pour KSOAP. Devrait-il important la version JDK que j'utilise? Je pense pas ... mais maintenant j'essaie de découvrir la racine du problème puis la solution. Pouvez-vous aider s'il vous plaît? merci de toute façon :)
La solution
Vos points de téléchargement sur KXML utilisent la bibliothèque KSOAP2:
http://sourceforge.net/projects/ksoap2/files/ksoap2/2.1.2/ksoap2-j2me-core-2.1.2.jar/download
ou ajoutez la source directement à votre projet. C'est plus compliqué, mais il permet plus de flexibilité si vous devez personnaliser: