我有一个简单的类写在Android Studio:

package com.mysite.myapp;

import org.apache.http.client.HttpClient;

public class Whatever {
    public void headBangingAgainstTheWallExample () {
        HttpClient client = new DefaultHttpClient();
    }
}

从这里我得到了以下编译时错误:

无法解析HttpClient符号

HttpClient不是包含在Android Studio SDK中吗?即使不是,我也像这样把它添加到我的Gradle构建中:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'org.apache.httpcomponents:httpclient:4.5'
}

不管有没有最后一个编译行,错误都是一样的。我错过了什么?


当前回答

在SDK级别23中使用Apache HTTP:

顶层构建。Gradle - /build.gradle

buildscript {
    ...
    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0' 
        // Lowest version for useLibrary is 1.3.0
        // Android Studio will notify you about the latest stable version
        // See all versions: http://jcenter.bintray.com/com/android/tools/build/gradle/
    }
    ...
}

Android工作室关于gradle更新的通知:

特定于模块的构建。Gradle - /app/build.gradle

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

其他回答

HttpClient在sdk 23和23+中不支持。

如果你需要使用到sdk 23,添加以下代码到你的gradle:

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

这对我很有用。希望对你有用。

你可以简单地将它添加到Gradle依赖项中:

compile "org.apache.httpcomponents:httpcore:4.3.2"

Android 6.0 (API Level 23)版本删除了对Apache HTTP客户端的支持。因此你不能在API 23中直接使用这个库。但还是有办法利用它的。添加useLibrary ` org.apache.http。在你的构建中遗留'。Gradle文件如下-

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

如果这没有工作,你可以应用以下黑客-

将Android SDK目录/platforms/ Android -23/optional路径下的org.apache.http.legacy.jar复制到项目的app/libs文件夹。

-现在在build的dependencies{}部分中添加编译文件(' libs/org.apache.http.legacy.jar ')。gradle文件。

在sdk 23中不再支持HttpClient。你必须使用URLConnection或降级到sdk 22(编译'com.android.support:appcompat-v7:22.2.0')

如果你需要sdk 23,把这个添加到你的gradle:

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

你也可以尝试下载并将HttpClient jar直接包含到你的项目中,或者使用OkHttp代替

在依赖项下添加这两行

compile 'org.apache.httpcomponents:httpcore:4.4.1'
compile 'org.apache.httpcomponents:httpclient:4.5'

然后

useLibrary 'org.apache.http.legacy'

在安卓系统下