在Android Studio中导入Google Play服务库

los*_*ime 51 java android gradle google-play-services android-studio

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

项目无法解决GooglePlayServicesUtil,当我手动输入导入时(如下所示),我明白了Cannot resolve symbol 'common'.

import com.google.android.gms.common.GooglePlayServicesUtil;
Run Code Online (Sandbox Code Playgroud)

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

我试过的

Google Play服务设置中,我只需要将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'
}
Run Code Online (Sandbox Code Playgroud)

这个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>
Run Code Online (Sandbox Code Playgroud)

这是我的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());
    }
}
Run Code Online (Sandbox Code Playgroud)

pyu*_*s13 34

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

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

GMS依赖

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


Pra*_*ash 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. 更新了AndroidManifest.xml <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />

  • 该错误发生在Android Studio 0.4.2上.如果您使用的是Android Studio 0.4.3或更高版本,则依赖项解析应该像您所描述的那样工作. (3认同)

Cri*_*vez 7

我通过在sdk管理器中安装google play服务包解决了这个问题.

之后,创建一个新的应用程序并在build.gradle中添加它

compile 'com.google.android.gms:play-services:4.3.+'
Run Code Online (Sandbox Code Playgroud)

像这样

dependencies {
    compile 'com.android.support:appcompat-v7:+'
    compile 'com.google.android.gms:play-services:4.3.+'
}
Run Code Online (Sandbox Code Playgroud)

  • 我不认为"PlayServicesUtil"需要整个**play-services**库.像**play-services-gcm**这样的东西就足够了. (2认同)