我想将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库?我怎么能强迫它呢?
答案 0 :(得分:1)
尝试添加到build.gradle
android {
useLibrary 'org.apache.http.legacy'
}
答案 1 :(得分:0)
Android 6.0版本删除了对Apache HTTP客户端的支持。
如果您设置使用4.1而不是最新版本,请尝试添加此依赖项:
compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.1.3'
构建完成后,您可能需要重新启动Android Studio才能确保其不是一些奇怪的故障。