java.lang.NoClassDefFoundError: org/apache/http/conn/HttpClientConnectionManager
Je suis à l'aide d'une API de Mashape dans une application Android. Mashape recommande l'utilisation de la Unirest de la bibliothèque. J'ai inclus les dépendances mentionné sur le unirest lien: http://unirest.io/java
Mon Dépendances:
compile fileTree(dir: 'libs', include: ['*.jar'])
compile group:'com.mashape.unirest', name:'unirest-java', version:'1.3.26'
compile group:'org.apache.httpcomponents', name:'httpcore', version:'4.3.3'
compile group:'org.apache.httpcomponents', name:'httpclient', version:'4.3.6'
compile group:'org.apache.httpcomponents', name:'httpasyncclient', version:'4.0.2'
compile group:'org.apache.httpcomponents', name:'httpmime', version:'4.3.5'
compile group:'org.json', name:'json', version:'20141113'
compile 'com.android.support:appcompat-v7:21.0.+'
J'obtiens toujours cette erreur quand je fais un HTTPRequest:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/conn/HttpClientConnectionManager
at com.mashape.unirest.http.HttpClientHelper.prepareRequest(HttpClientHelper.java:153)
at com.mashape.unirest.http.HttpClientHelper.request(HttpClientHelper.java:133)
at com.mashape.unirest.request.BaseRequest.asJson(BaseRequest.java:68)
Disconnected from the target VM, address: '127.0.0.1:58805', transport: 'socket'
Caused by: java.lang.ClassNotFoundException: org.apache.http.conn.HttpClientConnectionManager
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 5 more
Mon code java est simple:
HttpResponse<JsonNode> response = Unirest.get("https://testlink/all")
.header("X-Mashape-Key", TEST_KEY)
.asJson();
Pourriez-vous svp m'aider à résoudre ce problème? Merci pour votre aide!
Mise à JOUR:
Comme par secondo la suggestion, j'ai changé le httpclient pour httpclient-android. Mon dépendances ressembler à ceci maintenant:
compile fileTree(dir: 'libs', include: ['*.jar'])
compile group:'com.mashape.unirest', name:'unirest-java', version:'1.3.26'
compile group:'org.apache.httpcomponents', name:'httpclient-android', version:'4.3.5'
compile group:'org.apache.httpcomponents', name:'httpcore', version:'4.3.3'
compile group:'org.apache.httpcomponents', name:'httpcore-nio', version:'4.3.3'
compile group:'org.apache.httpcomponents', name:'httpasyncclient', version:'4.0.2'
compile group:'org.apache.httpcomponents', name:'httpmime', version:'4.3.5'
compile group:'org.json', name:'json', version:'20141113'
compile 'com.android.support:appcompat-v7:21.0.0'
Après la reconstruction du projet et à son exécution, j'ai cette erreur:
Error:Gradle: Execution failed for task ':app:dexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
H:\IDEs\Android\android-sdk\sdk\build-tools\21.1.1\dx.bat --dex --output H:\workspace\app\build\intermediates\dex\debug H:\workspace\app\build\intermediates\classes\debug H:\workspace\app\build\intermediates\dependency-cache\debug H:\workspace\app\build\intermediates\pre-dexed\debug\classes-4bcf10ca50c0eb5fadc28458c4bdfc2547896050.jar H:\workspace\app\build\intermediates\pre-dexed\debug\classes-5f3630f6ee4db4f375d08625dd3729b85011cca4.jar H:\workspace\app\build\intermediates\pre-dexed\debug\httpasyncclient-4.0.2-5690889a573efdb127c3d5c2454e7a393211dee6.jar H:\workspace\app\build\intermediates\pre-dexed\debug\httpclient-android-4.3.5-1f1bd070e63b095d84e38ae09b61037bfca0f0ab.jar H:\workspace\app\build\intermediates\pre-dexed\debug\httpcore-4.3.3-ee2fa72794df9164a47403637dad2f0f578b8086.jar H:\workspace\app\build\intermediates\pre-dexed\debug\httpcore-nio-4.3.3-a277a34ed4caa7515de7b22c51b9b5f43eb3a9ac.jar H:\workspace\app\build\intermediates\pre-dexed\debug\httpmime-4.3.5-ed96b5f192c9ed4e3cca5097f8fe8a3d2a673970.jar H:\workspace\app\build\intermediates\pre-dexed\debug\internal_impl-21.0.0-529c245f53e03251f5328b23447088bd0d76c596.jar H:\workspace\app\build\intermediates\pre-dexed\debug\support-annotations-21.0.0-bc18e9201600d41ee5718ce129ef80828a7bb5d5.jar H:\workspace\app\build\intermediates\pre-dexed\debug\unirest-java-1.3.26-7ee6377b956e1b237982bd82965679bf6e0a7fa9.jar
Error Code:
2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lorg/apache/http/Consts;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:302)
at com.android.dx.command.dexer.Main.run(Main.java:245)
at com.android.dx.command.dexer.Main.main(Main.java:214)
at com.android.dx.command.Main.main(Main.java:106)
Caused by: java.lang.ClassNotFoundException: org.apache.http.conn.HttpClientConnectionManager
cela signifie que vous avez oublié certains fichiers jar nécessaire je pense.Salut Secondo. J'ai ajouté toutes les dépendances. Pourriez-vous me dire ce que je pourrais être absent?
pour être honnête, je n'ai que peu de connaissances sur android, mais avez-vous déjà essayé d'inclure ?
OriginalL'auteur takeradi | 2014-12-03
Vous devez vous connecter pour publier un commentaire.
il n'y a pas de fichier de classe dans votre projet pour la suite de classe.
De sorte s'il vous plaît ajouter des fichiers jar dans votre projet de bibliothèque vous pouvez downalod ce fichier jar lien ci-dessous
Télécharger Le Fichier Jar
compile group:'org.apache.httpcomponents', name:'httpclient', version:'4.3.6'
sur cette base, je pense qu'il a déjà inclus ce fichier jar et vous proposons une version inférieure.Pouvez vous s'il vous plaît essayez d'ajouter au-dessus de fichier jar de le mentionner dans ma réponse et de construire votre application et essayez.
votre code a seulement
org.apache.httpcomponents
mais vous obtenez l'erreur deorg.apache.http.conn.HttpClientConnectionManager
. Essayez donc au-dessus de fichier jar et de test.Je ne peux pas 🙂 j'ai essayé de télécharger le lien que vous avez donné et il s'agit de la version 4.3-beta1.jar mais les OP ont déjà 4.3.6 dans son classpath . est-il un problème avec la version 4.3.6 ?
Êtes-vous sûr que le même pot a été importé dans votre projet. Est-ce que votre précédente pot a de la classe org.apache.http.conn.HttpClientConnectionManager'?
OriginalL'auteur Altmish-E-Azam
Aller à Projet/Propriétés/Java Build Path/Commande et d'Exportation -- assurez-vous que il ya une case en face de Android des Dépendances et de la bibliothèque de prise en charge, si vous l'utilisez.
Coche toutes les cases à cocher et Cliquez sur Appliquer et à nettoyer; le projet.
OriginalL'auteur Siddharth_Vyas