无法使用Apache HttpClient

时间:2018-06-18 23:54:35

标签: android httpclient

我想将Apache HttpClient 4.1包含在我的项目中。

所以,我添加到了我的build.gradle:

dependencies {
    ..
    compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.1'
}

运行完整性测试:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        try {
            EntityUtils.consume(null);
        } catch (Exception e){
            System.out.print(e.getMessage());
        }
    }

给出错误:

java.lang.NoSuchMethodError:没有静态方法消耗(Lorg / apache / http / HttpEntity;)类Lorg / apache / http / util / EntityUtils中的V;或其超级类(&org.apache.http.util.EntityUtils'的声明出现在/system/framework/org.apache.http.legacy.boot.jar)

那么为什么Android调用org.apache.http.legacy.boot.jar而不是调用添加的Apache HttpClient 4.1库?我怎么能强迫它呢?

2 个答案:

答案 0 :(得分:1)

尝试添加到build.gradle

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

答案 1 :(得分:0)

Android 6.0版本删除了对Apache HTTP客户端的支持。

在此处阅读更多详情:https://developer.android.com/about/versions/marshmallow/android-6.0-changes#behavior-apache-http-client

如果您设置使用4.1而不是最新版本,请尝试添加此依赖项:

 compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.1.3'

构建完成后,您可能需要重新启动Android Studio才能确保其不是一些奇怪的故障。