java.lang.NoClassDefFoundError: org/apache/http/conn/HttpClientConnectionManager
Bin ich über eine API von Mashape in einer Android-Anwendung. Mashape empfiehlt die Verwendung des Unirest Bibliothek. Ich habe die Abhängigkeiten erwähnt, auf der unirest link: http://unirest.io/java
Meine Abhängigkeiten:
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.+'
Ich bekomme immer noch diese Fehlermeldung, wenn ich einen 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
Mein java-code ist einfach:
HttpResponse<JsonNode> response = Unirest.get("https://testlink/all")
.header("X-Mashape-Key", TEST_KEY)
.asJson();
Könnten Sie mir bitte helfen, dieses Problem zu lösen? Vielen Dank für Ihre Hilfe!
UPDATE:
Als pro-secondo-Vorschlag, änderte ich den httpclient zu httpclient-android. Meine Abhängigkeiten nun wie folgt Aussehen:
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'
Nach Umbau das Projekt und es läuft, ich bekomme diese Fehlermeldung:
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
es bedeutet, Sie vergessen Sie einige jar-Dateien benötigt, denke ich.Hi Secondo. Ich fügte alle Abhängigkeiten. Könnten Sie mir bitte sagen, was ich möglicherweise fehlen?
um ehrlich zu sein, ich habe nur wenige Kenntnisse über android, aber haben Sie jemals versucht zu zählen ?
InformationsquelleAutor takeradi | 2014-12-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
es gibt keine class-Datei in Ihrem Projekt für die folgende classe.
Also bitte fügen Sie die jar-Datei in Ihrem Projekt-Bibliothek können Sie downalod diese jar-Datei von folgenden link
Download Der Jar-Datei
compile group:'org.apache.httpcomponents', name:'httpclient', version:'4.3.6'
auf dieser Grundlage denke ich, hat er bereits aufgenommen, die jar-Datei und Sie sind, was auf eine niedrigere version.Können Sie bitte versuchen Sie, fügen Sie den oben jar-Datei zu erwähnen in meiner Antwort und Erstellung Ihrer app und versuchen Sie es.
dein code hat nur
org.apache.httpcomponents
aber Sie sind immer Fehler vonorg.apache.http.conn.HttpClientConnectionManager
. So versuchen, die oben genannten jar-Datei und testen.Ich kann nicht 🙂 ich habe versucht, herunterladen, den link, den Sie gab, und es ist die version 4.3-beta1.jar aber die OP bereits 4.3.6 in seinem classpath . gibt es irgendwelche Probleme mit 4.3.6 version ?
Sind Sie sicher, dass die gleiche jar importiert wurde, die in Ihrem Projekt. Hat Ihre bisherige jar hat Klasse " org.apache.http.conn.HttpClientConnectionManager'?
InformationsquelleAutor Altmish-E-Azam
Gehen Sie auf Projekt/Properties/Java Build Path/Order and Export -- Stellen Sie sicher, dass es ein check-in vor Android-Abhängigkeiten und die Unterstützung, die Bibliothek, wenn Sie es verwenden.
Markieren Sie alle Kontrollkästchen und Klicken Sie auf Anwenden und reinigen Sie das Projekt.
InformationsquelleAutor Siddharth_Vyas