我有一个简单的类写在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'
}

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


当前回答

错误:(30,0)Gradle DSL方法未找到:'classpath()' 可能原因:项目“cid”可能使用了不包含该方法的Android Gradle插件版本(例如。'testCompile'在1.1.0中添加)。 将插件升级到2.3.3版本并同步项目“cid”项目可能使用了不包含该方法的Gradle版本。 打开Gradle包装文件构建文件可能缺少一个Gradle插件。 应用Gradle插件

其他回答

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

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

在sdk 23中不再支持HttpClient。Android 6.0 (API Level 23)版本删除了对Apache HTTP客户端的支持。 你必须使用

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

并在您的依赖项中添加以下代码片段:

//http web服务的最终解决方案(包括文件上传)

compile('org.apache.httpcomponents:httpmime:4.3.6') {
        exclude module: 'httpclient'
}
 compile 'org.apache.httpcomponents:httpclient-android:4.3.5'

它也将帮助你,当你使用使用多亲子文件上传。

在API 22中,它们被弃用了,在API 23中,它们被完全删除了,如果你不需要新添加的所有花哨的东西,一个简单的解决方法是简单地使用API 22之前集成的apache的。jar文件,但作为独立的。jar文件:

1. http://hc.apache.org/downloads.cgi
2. download httpclient 4.5.1, the zile file
3. unzip all files
4. drag in your project httpclient-4.5.1.jar, httpcore-4.4.3.jar and httpmime-4.5.1.jar
5. project, right click, open module settings, app, dependencies, +, File dependency and add the 3 files
6. now everything should compile properly

适用于android API 28及更高版本 在Manifest.xml应用程序标签内

    <application
    .
    .
    .

    <uses-library android:name="org.apache.http.legacy" android:required="false"/>

在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'
    ...
}