Java can';t import com.google.api.client.http.*无法解析符号';api&x27;

Java can';t import com.google.api.client.http.*无法解析符号';api&x27;,java,android,google-places-api,Java,Android,Google Places Api,我不断收到错误消息“无法解析符号'api' 我正在开发一个使用GooglePlacesAPI跟踪用户位置的应用程序。我一直试图让它工作,但我的导入语句一直给我带来麻烦。我看过不同的地方,我找到的资料都告诉我不同的事情,比如 在build.gradle中添加“compile'com.google.android.gms:play services:9.8.0”。这通常会导致项目无法同步。我对此做了一些研究,其中提到了我必须如何改变SDK,但这看起来不太有希望 将“useLibrary'org.ap

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

  • 在build.gradle中添加“compile'com.google.android.gms:play services:9.8.0”。这通常会导致项目无法同步。我对此做了一些研究,其中提到了我必须如何改变SDK,但这看起来不太有希望
  • 将“useLibrary'org.apache.http.legacy'”放在build.gradle中。这有助于第一条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”符号来解析错误消息。有什么建议吗?

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

    com.google.android.gms:play-services-places:9.8.0
    
    如果您想要位置跟踪,我认为您需要的是位置API,而不是位置

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

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

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

    com.google.android.gms:play-services-places:9.8.0
    
    如果您想要位置跟踪,我认为您需要的是位置API,而不是位置

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

    我不知道您为什么需要Apache HTTP,但这似乎与当前错误无关。我忘了提到我们的目标是棒棒糖。我们是否必须以牛轧糖为目标来使用游戏服务场所:9.8.0?我不知道。您可以随意使用所需的版本。因此,我这样做了,它适用于:导入“com.google.android.gms.common.api.GoogleAppClient;”和“导入com.google.android.gms.common.api.GoogleAppClient.OnConnectionFailedListener;”但不适用于限制。。。这些是连接到任何api所需的核心Google play services api依赖项的一部分。我忘了提到我们的目标是棒棒糖。我们是否必须以牛轧糖为目标来使用游戏服务场所:9.8.0?我不知道。您可以随意使用所需的版本。因此,我这样做了,它适用于:导入“com.google.android.gms.common.api.GoogleAppClient;”和“导入com.google.android.gms.common.api.GoogleAppClient.OnConnectionFailedListener;”但不适用于限制。。。这些是连接到任何api所需的核心Google play services api依赖项的一部分。