not able to import com.squareup.okhttp.OkHttpClien

2019-01-19 01:05发布

问题:

I am working on android studio and fetching some data from the web. I tried using OkHttpClient and also added jars to my project folder but still i am unable to import it.

It shows can't resolve symbol okhttp. I tried some solution but unable to solve the problem.Here is my build.gradle file

apply plugin: 'com.android.application'
android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"

    defaultConfig {
        applicationId "com.example.app"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }


}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'com.google.android.gms:play-services:8.4.0'
 //   compile files('libs/okhttp-3.0.1.jar')
   // compile files('libs/okio-1.6.0.jar')


}

回答1:

Gradle should have a line like this

compile 'com.squareup.okhttp3:okhttp:3.0.1'

and this is how you import it

import okhttp3.OkHttpClient;

Because OkHttpClient has been moved from package com.squareup.okhttp to okhttp3 in the last version.

More details are here and here



回答2:

You need to add the following libraries:

compile 'com.squareup.okhttp:okhttp:2.2.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'


回答3:

Let gradle handle download and import for you:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'com.google.android.gms:play-services:8.4.0'
    compile 'com.squareup.okhttp3:okhttp:3.0.1'
}


回答4:

I see you are/were trying to compile with a jar you manually put in your libs folder. Is there a reason for this (such as you need that specific version of the library etc.)? In case you didn't notice, the lines are commented out - that means they will not be processed and thus not added to your application.

Possible solutions:

  1. Uncomment the lines
  2. Try adding this to your dependencies instead:

    compile 'com.squareup.okhttp3:okhttp:3.0.1'
    

You can add it right under

compile 'com.google.android.gms:play-services:8.4.0'

Source: https://github.com/square/okhttp



回答5:

android {
    compileSdkVersion 25
    buildToolsVersion '25.0.2'
    useLibrary  'org.apache.http.legacy'
    ...
}

dependencies {
...
compile 'com.squareup.okhttp3:okhttp:3.4.1'

}

And change your import from com.squareup.okhttp.OkHttpClient to

import okhttp3.OkHttpClient;