Ondrej Tokar
Ondrej Tokar

Reputation: 5080

Cannot resolve symbol: 'HttpClient', even after adding dependency

I have tried to add various dependencies of Apache commons libs.

I have tried httpClient, httpCore and many different versions. Also from external jar and also from maven suggestions.

I ended up with this in my gradle:

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

It still gives me Cannot resolve HttpClient and Cannot resolve HttpPost etc.

It doesn't offer me to import the classes.

Code for doing HTTP post:

 // Create a new HttpClient and Post Header
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://fdsgsfdgs);

            try {
                // Add your data
                List<NameValuePair> nameValuePairs = new ArrayList<>(2);
                nameValuePairs.add(new BasicNameValuePair("id", null));
                nameValuePairs.add(new BasicNameValuePair("name", "TestFromAppSpell"));
                nameValuePairs.add(new BasicNameValuePair("damage", "12345"));
                nameValuePairs.add(new BasicNameValuePair("heal", "50"));
                nameValuePairs.add(new BasicNameValuePair("description", "Testtestest"));
                nameValuePairs.add(new BasicNameValuePair("coordinates", coordinates));
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                // Execute HTTP Post Request
                HttpResponse response = httpclient.execute(httppost);
                System.out.println("Http post done!");
            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
            } catch (IOException e) {
                // TODO Auto-generated catch block
            }

Gradle file:

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

apply plugin: 'com.android.application'

repositories {
    jcenter()
}

dependencies {
    compile 'com.android.support:support-v4:23.0.0'
    compile 'com.android.support:gridlayout-v7:23.0.0'
    compile 'com.android.support:cardview-v7:23.0.0'
    compile 'org.apache.httpcomponents:httpcore:4.4.1'
    compile 'org.apache.httpcomponents:httpclient:4.3.5'
}

dependencies {
    compile 'com.android.support:appcompat-v7:+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

// The sample build uses multiple directories to
// keep boilerplate and common code separate from
// the main sample code.
List<String> dirs = [
    'main',     // main sample code; look here for the interesting stuff.
    'common',   // components that are reused by multiple samples
    'template'] // boilerplate code that is generated by the sample template process

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"

    defaultConfig {
        minSdkVersion 11
        targetSdkVersion 23
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

    sourceSets {
        main {
            dirs.each { dir ->
                java.srcDirs "src/${dir}/java"
                res.srcDirs "src/${dir}/res"
            }
        }
        androidTest.setRoot('tests')
        androidTest.java.srcDirs = ['tests/src']

    }

}

Upvotes: 3

Views: 18718

Answers (3)

alfreedom
alfreedom

Reputation: 441

This is what you have to include

add the last lib and should work. its works for me

Upvotes: 5

asok
asok

Reputation: 151

HttpClient is not supported any more in SDK 23. You have to use URLConnection or downgrade to SDK 22 (compile 'com.android.support:appcompat-v7:22.2.0')

If you need SDK 23, add this to your gradle:

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

Upvotes: 7

Ondrej Tokar
Ondrej Tokar

Reputation: 5080

I just had to add this at the end of my build.gradle file.

packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
    }

Upvotes: 0

Related Questions