在Android Studio中导入Google Play服务库

时间:2014-01-12 23:19:58

标签: java android gradle android-studio google-play-services

我有一个完全在Android Studio中开发的Android项目(目前版本为4.2,gradle版本为1.9-all)。我想添加Google Play服务的功能。

项目无法解析GooglePlayServicesUtil,当我手动输入导入时(如下所示),我得到Cannot resolve symbol 'common'

import com.google.android.gms.common.GooglePlayServicesUtil;

知道我需要做些什么才能让GooglePlayServicesUtil解决?

我尝试过什么

Google Play Services Setup开始,我只需要将com.google.android.gms:play-services:4.+依赖项添加到我的build.gradle文件(以及使用gradle重新同步项目文件),以使SDK可用于我的项目。我确实在ProjectName/module/build/exploded-bundles中得到了一个“爆炸的捆绑”,但这似乎并没有成功。

我已经从SDK Manager安装了Google Play服务,Android支持存储库和Google Repository。我也多次删除并重新安装它们:)

编辑:

我是否需要手动将google_play_services添加为项目/全局库?我试图没有成功。

我正在尝试验证我是否正在使用Google服务开发平台API(如果可能的话),但我不确定是这样的。我没有改变似乎做任何事情。

我项目的外部图书馆显示:

  • < Android API 19平台>
  • < 1.7>
  • 乔达 - 时间 - 2.3
  • 支持-v4-13.0.0

源代码

这是我的ProjectName / module / build.gradle文件:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.7.+'
    }
}

apply plugin: 'android'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 19
    buildToolsVersion '19.0.1'
    defaultConfig {
        minSdkVersion 17
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    signingConfigs {
    }
    productFlavors {
    }
}

dependencies {
    compile 'com.google.android.gms:play-services:4.+'
    compile 'joda-time:joda-time:2.3@jar'
}

com.google.android.gms.version号码在我的清单中解析得很好。这是我的ProjectName / module / src / main / AndroidManifest.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android" >

    <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="19"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.android.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".SecondActivity"/>

        <meta-data android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

        <provider
            android:name=".DataProvider"
            android:authorities="com.example.android.provider" >
        </provider>

        <receiver android:name=".WidgetProvider" >
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
            <meta-data android:name="android.appwidget.provider"
                   android:resource="@xml/widget_info" />
        </receiver>

        <service android:name=".DatabaseService" />
        <service android:name=".WidgetProvider$UpdateService" />
    </application>

</manifest>

这是我的MainActivity,我正在尝试检查GooglePlayServices是否可用:

package com.example.android;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

import com.google.android.gms.common.GooglePlayServicesUtil;

public class MainActivity extends Activity {
    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public void onResume() {
        Log.i(TAG, "onResume");
        GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());
    }
}

7 个答案:

答案 0 :(得分:33)

尝试一次并确保您没有在项目结构中收到任何错误,说“未添加”ComGoogleAndroidGmsPlay“

打开File > Project Structure并检查以下所有内容。如果显示错误,请单击标记的红色灯泡,然后单击“添加到依赖项”。

GMS dependency

这是Android Studio中的一个错误,已针对下一个版本(0.4.3)修复

答案 1 :(得分:20)

我遇到类似问题无法解析com.google.android.gms.common。

我按照设置指南http://developer.android.com/google/play-services/setup.html进行操作!

<强>要点:

  1. 从SDK Manager安装/更新了Google Play服务和Google Repository
  2. 在build.gradle中添加了依赖项:compile 'com.google.android.gms:play-services:4.0.30'
  3. 使用<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
  4. 更新了AndroidManifest.xml

答案 2 :(得分:7)

我通过在sdk manager中安装google play服务包解决了这个问题。

之后,创建一个新的应用程序&amp;在build.gradle中添加此

compile 'com.google.android.gms:play-services:4.3.+'

喜欢这个

dependencies {
    compile 'com.android.support:appcompat-v7:+'
    compile 'com.google.android.gms:play-services:4.3.+'
}

答案 3 :(得分:4)

在遇到相同问题的几个小时之后,请注意,如果你的jar在libs文件夹上,一旦你在“Dependencies”上设置它就会引起问题,所以我只是注释文件树的依赖关系并保持使用

依赖

chunked

问题解决了。

答案 4 :(得分:3)

我刚尝试了你的build.gradle,我可以导入GMS,这不是问题所在。

这是Google Play services (rev 13)Google Repository (rev 4)。看看那些已经安装了一次:)

答案 5 :(得分:1)

我遇到了同样的问题。我只是试图重建,清理并重新启动,但没有运气。然后我就删除

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

来自build.gradle和resync。之后,我再次把它重新同步。接下来,我清理项目,问题就消失了!

我希望它能帮助你们面对同样的人。

答案 6 :(得分:-3)

// gradle.properties

systemProp.http.proxyHost = www.somehost.org

systemProp.http.proxyPort = 8080

systemProp.http.proxyUser =用户ID

systemProp.http.proxyPassword =密码

systemProp.http.nonProxyHosts = * nonproxyrepos.com |。本地主机