简体   繁体   English

java.lang.NoClassDefFoundError:org / apache / http / conn / HttpClientConnectionManager

[英]java.lang.NoClassDefFoundError: org/apache/http/conn/HttpClientConnectionManager

I am using an API from Mashape in an Android application. 我在Android应用程序中使用Mashape的API。 Mashape recommends using the Unirest library. Mashape建议使用Unirest库。 I have included the dependencies mentioned on the unirest link: http://unirest.io/java 我已经包含了在unirest链接上提到的依赖项: http ://unirest.io/java

My Dependencies: 我的依赖:

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.+'

I still get this error when I make a HTTPRequest: 我发出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

My java code is simple: 我的java代码很简单:

HttpResponse<JsonNode> response = Unirest.get("https://testlink/all")
                    .header("X-Mashape-Key", TEST_KEY)
                    .asJson();

Could you please help me solve this issue? 你能帮我解决这个问题吗? Thanks for your help! 谢谢你的帮助!


UPDATE: As per secondo's suggestion I changed the httpclient to httpclient-android. 更新:根据secondo的建议,我将httpclient更改为httpclient-android。 My dependencies look like this now: 我的依赖项现在看起来像这样:

    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'

After rebuilding the project and running it, I get this error: 重建项目并运行它后,我收到此错误:

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)

there is no class file in your project for following classe. 您的项目中没有用于跟随classe的类文件。

org/apache/http/conn/HttpClientConnectionManager

So please add jar file in your project library you can downalod this jar file from below link 所以请在你的项目库中添加jar文件,你可以从下面的链接下载这个jar文件

Download Jar File 下载Jar文件

Go to Project/Properties/Java Build Path/Order and Export -- Make sure there's a check in front of Android Dependencies and the support library, if you use it. 转到项目/属性/ Java构建路径/订单和导出 - 如果您使用它,请确保在Android Dependencies和支持库前面进行检查。

Mark all checkboxes and Click on Apply and clean the project. 选中所有复选框,然后单击“应用”并清除项目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Kafka 连接错误:java.lang.NoClassDefFoundError:org/apache/http/conn/HttpClientConnectionManager - Kafka Connect Error : java.lang.NoClassDefFoundError: org/apache/http/conn/HttpClientConnectionManager java.lang.NoClassDefFoundError:org / apache / http / nio / conn / NHttpClientConnectionManager - java.lang.NoClassDefFoundError: org/apache/http/nio/conn/NHttpClientConnectionManager java.lang.NoClassDefFoundError:org / apache / http / conn / params / ConnPerRoute - java.lang.NoClassDefFoundError: org/apache/http/conn/params/ConnPerRoute java.lang.NoClassDefFoundError:org / apache / http / impl / conn / PoolingClientConnectionManager - java.lang.NoClassDefFoundError: org/apache/http/impl/conn/PoolingClientConnectionManager java.lang.NoClassDefFoundError:带有AmazonHttpClient的org / apache / http / conn / SchemePortResolver - java.lang.NoClassDefFoundError: org/apache/http/conn/SchemePortResolver with AmazonHttpClient java.lang.NoClassDefFoundError:org / apache / http / conn / scheme / SchemeSocketFactory - java.lang.NoClassDefFoundError: org/apache/http/conn/scheme/SchemeSocketFactory org.apache.http.conn.ssl上的java.lang.NoClassDefFoundError org / apache / commons / logging / LogFactory - java.lang.NoClassDefFoundError org/apache/commons/logging/LogFactory at org.apache.http.conn.ssl Java:java.lang.NoClassDefFoundError:org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager - Java: java.lang.NoClassDefFoundError: org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager java.lang.NoClassDefFoundError: - 不能初始化类org.apache.http.impl.conn.ManagedHttpClientConnectionFactory - java.lang.NoClassDefFoundError :-Could not initialize class org.apache.http.impl.conn.ManagedHttpClientConnectionFactory java.lang.NoClassDefFoundError:无法初始化类 org.apache.http.conn.ssl.SSLConnectionSocketFactory - java.lang.NoClassDefFoundError: Could not initialize class org.apache.http.conn.ssl.SSLConnectionSocketFactory
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM