引起:java.lang.NoClassDefFoundError:org.apache.http.util.Args

时间:2016-03-21 09:29:38

标签: java android noclassdeffounderror

  conn.addRequestProperty(entity.getContentType().getName(), entity.getContentType().getValue());

在运行操作系统版本4.1的三星设备上崩溃。在Marshmallow Nexus 6设备上,它工作得非常好。有什么问题?

Gradle文件

compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.gms:play-services:8.4.0'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'

我的libs文件夹中有httpclient-4.3.3.jar HttpClient的缓存-4.3.3.jar 的HttpCore-4.3.2.jar httpmime-4.3.3.jar

3 个答案:

答案 0 :(得分:1)

自marshmallow以来,Apache http客户端已被删除。

请参阅此处Apache HTTP Client Removal

解决方案(关于嵌入客户端):

android {
    useLibrary 'org.apache.http.legacy'
}

更新: 关于特定问题,请参阅相关的post

顺便说一下,在我的项目中,我无法将apache http客户端添加为库,因为包名与embed cliend冲突。我必须使用thishere

所述

答案 1 :(得分:-1)

用于Marshmallow Apache HTTP客户端删除

android {
useLibrary 'org.apache.http.legacy'

}

尝试一次

app / build / libs文件>>项目结构>>依赖性>> +>>文件依赖性>>然后将其更改为提供而不是编译(如果导入的jar太多,则编译将导致非零值为1的java退出。

三星已经对sdk进行了定制,因此可以包含更多的罐子..

答案 2 :(得分:-1)

请包含useLibrary url,如下所示

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
    useLibrary 'org.apache.http.legacy'