我有一个用Android Studio编写的简单类:
package com.mysite.myapp;
import org.apache.http.client.HttpClient;
public class Whatever {
public void headBangingAgainstTheWallExample () {
HttpClient client = new DefaultHttpClient();
}
}
从这我得到以下编译时错误:
Cannot resolve symbol HttpClient
Android Studio SDK中不包含HttpClient
吗? 即使不是,我也将其添加到Gradle构建中,如下所示:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'org.apache.httpcomponents:httpclient:4.5'
}
有无最后一条编译行,错误是相同的。 我想念什么?
#1楼
sdk 23中不再支持HttpClient
。您必须使用URLConnection
或降级为sdk 22( compile 'com.android.support:appcompat-v7:22.2.0'
)
如果您需要sdk 23,请将其添加到gradle:
android {
useLibrary 'org.apache.http.legacy'
}
您也可以尝试下载HttpClient jar并将其直接包含到您的项目中,或者改用OkHttp
#2楼
您的项目中有哪个API目标? AndroidHttpClient
仅适用于API级别8 <。 请在这里看看
享受你的代码:)
#3楼
v23 sdk中已删除ApacheHttp Client。 您可以使用HttpURLConnection或OkHttp之类的第三方Http Client。
参考: https://developer.android.com/preview/behavior-changes.html#behavior-apache-http-client
: https://developer.android.com/preview/behavior-changes.html#behavior-apache-http-client
#4楼
HttpClient在API级别22中已弃用,在API级别23中已删除。您仍然可以在API级别23及更高版本中使用它(如果需要),但是最好移至支持的方法来处理HTTP。 因此,如果您使用23进行编译,请将其添加到build.gradle中:
android {
useLibrary 'org.apache.http.legacy'
}
#5楼
1-从以下位置下载Apache jar文件(截至本答案)4.5.zip文件:
https://hc.apache.org/downloads.cgi?Preferred=http%3A%2F%2Fapache.arvixe.com%2F
2-打开zip,将jar文件复制到您的libs文件夹中。 如果您转到项目顶部的“ Android”,则可以找到它,当您单击它时会找到一个列表。 所以,
Android->项目->应用程序->库
,然后把罐子放在那里。
3-在build.gradle(模块:app)中添加
compile fileTree(dir: 'libs', include: ['*.jar'])
在
dependency {
}
4-在java类中添加以下导入:
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.CoreProtocolPNames;
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3182955