HttpClient不会导入Android Studio

…衆ロ難τιáo~ 提交于 2020-03-01 20:17:21

我有一个用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;
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!