【问题标题】:can't import com.google.api.client.http.* Cannot resolve symbol 'api'无法导入 com.google.api.client.http.* 无法解析符号“api”
【发布时间】:2016-11-09 03:03:54
【问题描述】:

我不断收到错误消息“无法解析符号 'api'。” 我正在开发一个使用 Google Places API 跟踪用户位置的应用程序。我一直试图让它工作,但我的导入语句给我带来了麻烦。我在不同的地方看过,我找到的来源都告诉我不同​​的事情,比如......

  1. 在 build.gradle 中加入“compile 'com.google.android.gms:play-services:9.8.0'”。这通常会导致项目无法同步。我对此进行了一些研究,其中提到了我必须如何更改 SDK,但这看起来不太有希望。
  2. 在 build.gradle 中加入“useLibrary 'org.apache.http.legacy'”。这有助于第一个 import 语句的工作(“import org.apache.http.client.HttpResponseException;”),但不是其余的。

我的代码中有以下导入语句。

import org.apache.http.client.HttpResponseException;
import com.google.api.client.googleapis.GoogleHeaders;
import com.google.api.client.http.GenericUrl;
import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestFactory;
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.http.json.JsonHttpParser;
import com.google.api.client.json.jackson.JacksonFactory;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;

这就是 build.gradle 的样子:

android {
    useLibrary 'org.apache.http.legacy'
    compileSdkVersion 25
    buildToolsVersion "25.0.0"
    defaultConfig {
        applicationId "tech.pattullo.teamzero"
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    //compile 'com.google.android.gms:play-services:9.8.0'
    //compile 'com.google.android.gms:play-services:7.2.0'
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.0.0'
    testCompile 'junit:junit:4.12'
}

我还不确定我实际需要多少这些,但我不知道如何使用“api”符号解决该错误消息。有什么建议吗?

【问题讨论】:

    标签: java android google-places-api


    【解决方案1】:

    如果您想要 Google 地方,您只需要这个。您不需要编译每一个 Google Play 服务。

    com.google.android.gms:play-services-places:9.8.0
    

    如果你想要位置跟踪,我认为你需要 location API,而不是 Places

    com.google.android.gms:play-services-location:9.8.0
    

    我不知道你为什么需要 Apache HTTP,但这似乎与当前的错误无关

    【讨论】:

    • 好的。我忘了提到我们的目标是棒棒糖。我们是否必须以 Nougat 为目标才能使用 play-services-places:9.8.0?
    • 我不知道。随意使用您需要的版本。
    • 所以我这样做了,它适用于:import "com.google.android.gms.common.api.GoogleApiClient;" &“导入 com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;”但不是其余的
    • 对...这些是连接到任何 API 所需的核心 Google Play 服务 API 依赖项的一部分。
    猜你喜欢
    • 1970-01-01
    • 2014-02-13
    • 2021-01-13
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    • 2019-10-03
    • 2021-02-04
    • 2019-10-30
    相关资源
    最近更新 更多