web-dev-qa-db-ja.com

Android St​​udioでGoogle Play Servicesライブラリをインポートします

Android St​​udio(現在バージョン4.2、gradleバージョン1.9-all)内で完全に開発されたAndroidプロジェクトがあります。 Google Play Servicesから機能を追加したい。

プロジェクトは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で「分解されたバンドル」を受け取りますが、それはトリックを行うようには見えません。

Googleプレイサービス、Androidサポートリポジトリ、およびSDKマネージャーからインストールされたGoogleリポジトリを既に持っています。また、それらを複数回削除して再インストールしました:)

編集:

Google_play_servicesをプロジェクト/グローバルライブラリとして手動で追加する必要がある場合がありますか?私は成功せずに試みました。

GoogleサービスでPlatform APIを使用して開発していることを確認しようとしています(それが可能な場合でも)が、そうではありません。私が変更するものは何もしないようです。

私のプロジェクトの外部ライブラリは以下を示しています:

  • <Android AP​​I 19プラットフォーム>
  • <1.7>
  • joda-time-2.3
  • support-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>

ここに、GooglePlayServicesが利用可能かどうかを確認しようとしているMainActivityがあります。

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());
    }
}
51
losttime

これを一度試して、プロジェクト構造に「ComGoogleAndroidGmsPlay not added」というエラーがないことを確認してください。

File > Project Structureを開き、以下をすべて確認します。エラーが表示されたら、マークされた赤い電球をクリックし、「依存関係に追加」をクリックします。

GMS dependency

これはAndroid St​​udioのバグであり、次のリリース(0.4.3)で修正されました

34
pyus13

同様の問題が発生しましたcom.google.Android.gms.commonを解決できません。

セットアップガイド http://developer.Android.com/google/play-services/setup.html をたどったところ、うまくいきました!

概要:

  1. インストール/更新されたGoogle Play Services、およびSDK ManagerからのGoogleリポジトリ
  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" />で更新しました
20
Prakash

SDKマネージャーにGoogle Play Servicesパッケージをインストールすることで問題を解決しました。

その後、新しいアプリケーションを作成し、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.+'
}
7

何時間も同じ問題が発生した後、jarがlibsフォルダーにある場合、「Dependencies」に設定すると問題が発生するため、ファイルツリーの依存関係をコメント化し、使用し続けます

依存関係

//compile fileTree(dir: 'libs', include: ['*.jar'])  <-------- commented one 
compile 'com.google.Android.gms:play-services:8.1.0'
compile 'com.Android.support:appcompat-v7:22.2.1'

そして問題は解決されました。

4
Angel Balderas

あなたのbuild.gradleを試してみたところ、GMSをインポートするのにうまく機能したので、それは問題ではありません。

これはGoogle Play services (rev 13)Google Repository (rev 4)でした。それらがもう一度インストールされていることを確認してください:)

3
quinnjn

同じ問題が発生しました。再構築、クリーニング、再起動を試みましたが、運はありませんでした。その後、私はちょうど削除します

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

build.gradleから再同期します。その後、私はそれを再び入れて再同期します。その隣に、私はプロジェクトをきれいにし、問題はなくなりました!!

皆さんが同じ問題に直面しているのを助けることを願っています。

1
Asad