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

Schreibe einen Kommentar