web-dev-qa-db-ja.com

Google Play Servicesを備えたAndroid Studio

新しいAndroid StudioでGoogle Play Servicesをテストしようとしています。 google_play_services.jarに依存するプロジェクトがあります。しかし、プロジェクトをリビルドしようとすると、次のエラーが発生します。

Information:[TstGP3-TstGP3] Crunching PNG Files in source dir: C:\Users\ans\AndroidStudioProjects\TstGP3\TstGP3\src\main\res
Information:[TstGP3-TstGP3] To destination dir: C:\Users\ans\AndroidStudioProjects\TstGP3\build\classes\res-cache\TstGP3-TstGP3
Information:Compilation completed with 2 errors and 0 warnings in 2 sec
Information:2 errors
Information:0 warnings
C:\Users\ans\.AndroidStudioPreview\system\compiler\tstgp3.3f17bd41\.generated\Android_BuildConfig_Generator\TstGP3-TstGP3.74fc5b25\production\com\example\tstgp3\BuildConfig.Java
    Error:Error:line (4)error: duplicate class: com.example.tstgp3.BuildConfig
C:\Users\ans\.AndroidStudioPreview\system\compiler\tstgp3.3f17bd41\.generated\aapt\TstGP3-TstGP3.74fc5b25\production\com\example\tstgp3\R.Java
    Error:Error:line (10)error: duplicate class: com.example.tstgp3.R

2つのBuildConfigファイルと2つのRクラスがあるようです。問題を解決するにはどうすればよいですか?

編集:

私は、コンパイラが2つのR.Javaファイルをコンパイルしていることに気付きました。1つはプロジェクトフォルダーにあり、もう1つは%USERPROFILE%.AndroidStudioPreviewフォルダーにあります。そのため、コンパイラー設定でこの「プレビュー」フォルダーを除外しようとしましたそして今、それは働いています。この問題は、プロジェクトでGoogle Play Servicesクラスの使用を開始した後にのみ発生します。誰かがこの問題の背後にある理由を説明できれば幸いです。

96
androidtester

Gradleプラグインv0.4.2のリリース、AndroidスタジオでのGoogle Playサービスのセットアップは簡単なので、これらの答えはすべて間違っています。 jarをインポートしたり、プロジェクトライブラリを追加したり、Androidスタジオで新しいモジュールを追加したりする必要はありません。あなたがしなければならないことは、build.gradleファイルに正しい依存関係を追加することです。これらのリンクをご覧ください: Gradle plugin v0.4.2 updateNew Build System 、および このサンプル

Correctその方法は次のとおりです。

まず、sdkマネージャーを起動し、「extras」の下にある次のファイルをダウンロードしてインストールする必要があります:AndroidサポートリポジトリGoogleプレイサービスGoogleリポジトリ

Androidスタジオを再起動し、ビルドgradleファイルを開きます。 build.gradleファイルを変更して、依存関係の下で次のようにする必要があります。

dependencies {
    compile 'com.google.Android.gms:play-services:6.5.87' 
 }

最後に、プロジェクトを同期します(AVDマネージャーの左側のボタン)。

バージョン6.5以降では、完全なライブラリ(非常に大きい)または必要なモジュールのみを含めることができます(ベストオプション)。つまり、Googleマップとアナリティクスのみが必要な場合は、前の例を次のように置き換えることができます。

dependencies {  
    compile 'com.google.Android.gms:play-services-base:6.5.87'    
    compile 'com.google.Android.gms:play-services-maps:6.5.87'  
}

完全な依存関係リストを見つけることができます here

いくつかのサイドノート:

  • 最新のプレイサービスライブラリバージョンを使用します。古いバージョンの場合、Android Studioはそれを強調表示します。現在(2月5日は6.5.87)ですが、最新バージョンは Gradle Please で確認できます。
  • Android Studioのメジャーアップデートの後、@ user123321のコメントで提案されている次の指示に従って、プロジェクトをクリーンアップします。

    プロジェクトフォルダーにcd
    ./ gradlew clean
    ./ gradlew build

244
Imanol
  1. ファイル->プロジェクト構造に移動します
  2. 「プロジェクト設定」を選択します
  3. 「依存関係」タブを選択します
  4. 「+」をクリックし、「1.Library Dependencies」を選択します
  5. 検索:com.google.Android.gms:play-services
  6. 最新バージョンを選択して「OK」をクリックします

出来上がり! Gradleと戦う必要はありません:)

113
Ivo Stoyanov

編集:この男は本当に家に持ち帰り、良い小さなチュートリアルを持っていますhttp://instantiatorgratification.blogspot.com/2013/05/ google-play-services-with-Android-studio.html

一方の注意:いろいろと遊んでいたので、gradlew cleanを実行して正常に実行する必要がありました

プロジェクトをインポートした場合、または\ extras\google\google_play_services\samples\mapsにあるサンプルマップアプリケーションから作業している場合は、このチュートリアルを確認してください。

https://stackoverflow.com/a/16598478/2414698

新しいプロジェクトをゼロから作成する場合は、同じ投稿に関するXavのコメントに注意してください。彼は、Android Studioが別のコンパイラを使用しており、build.gradleファイルを手動で変更する必要があると説明しています。私はこれを成功させました。コピーしました

  • google-play-services.jar
  • google-play-services.jar.properties

libディレクトリに追加し、build.gradleファイルに次を追加しました

dependencies {
    compile files('libs/Android-support-v4.jar')
    compile files('libs/google-play-services.jar')
}

また、これがnewプロジェクトの場合は、この投稿もチェックしてください。

https://stackoverflow.com/a/16671865/2414698

5

これらの回答のほとんどは、コンパイル時の依存関係のみを対象としていますが、実行時にNoClassDef例外のホストが見つかります。 google-play-services.jar以上のものが必要だからです。ライブラリプロジェクトの一部であるリソースを参照します。jarのみを持っている場合、それらは正しく含まれません。

私にとって最もうまくいったのは、まずEclipseでプロジェクトを正しくセットアップすることでした。ここで説明するように、アプリとライブラリの両方が含まれるようにプロジェクトを構造化します。 http://tools.Android.com/tech-docs/new-build-system/user-guide#TOC-Multi -project-setup

次に、Eclipseからアプリプロジェクトをエクスポートし、次の説明に従ってAndroid Studioにインポートします。 http://developer.Android.com/sdk/installing/migrate.html 。アプリプロジェクトとGoogle Playサービスライブラリプロジェクトの両方を必ずエクスポートしてください。インポートすると、ライブラリプロジェクトが検出され、モジュールとしてインポートされます。プロジェクトのインポートプロセス中にすべてのデフォルトを受け入れました。

4
Brad Armstrong

上記の解決策のどれも私にとってはうまくいきませんでした。それが私のセットアップに固有なのか、それとも新しいリリースに固有なのかはわかりません。

私はAndroid Studio Beta 0.8.9を使用していますが、この指示に従うと、ライブラリリストにcom.google.Android.gms:play-serviceが表示されませんでした。

[ファイル]-> [プロジェクト構造]-> [プロジェクト設定の選択]-> [依存関係]タブの選択[+]をクリック-> 1.Library依存関係-> com.google.Android.gms:play-services:+を選択

私はすでにこれをやっていました:

まず、sdkマネージャーを起動し、「extras」の下にある次のファイルをダウンロードしてインストールする必要があります:Androidサポートリポジトリ、Googleプレイサービス、Googleリポジトリ。

それを解決したのは、SDKマネージャーから「Google Play services for Froyo」を追加し、最初のステップを繰り返すことでした。

理由を正しく理解していませんでしたが、これはうまくいきました。

PS:プレイサービスを検索するとき、これは今ではありませんが、リストを直接スクロールして見るとすぐそこにあることに気付きました。

2
Selfx Aadhyant

AndroidスタジオでのGoogle Playサービスの統合。

ステップ1:

SDK manager->Tools Update this

1.Google play services
2.Android Support Repository

ステップ2:

chance in build.gradle 
defaultConfig {
        minSdkVersion 8
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    dependencies {
    compile 'com.Android.support:appcompat-v7:+'
    compile 'com.google.Android.gms:play-services:4.0.+'
}

ステップ3:

 Android.manifest.xml
<uses-sdk
        Android:minSdkVersion="8" />

ステップ4:

Sync project file with grandle.
wait for few minute.

ステップ5:

File->Project Structure find error with red bulb images,click on go to add dependencies select your app module.
Save

ヘルプが必要な場合はコメントを入力してください。ハッピーコーディング。

2
Harshid

この記事に従ってください-> http://developer.Android.com/google/play-services/setup.html

[Android Studioの使用]を選択する必要があります

enter image description here

Gradleファイルの例:

注:アプリケーションモジュールディレクトリ内のbuild.gradleファイルを開きます。

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 20
    buildToolsVersion "20.0.0"

    defaultConfig {
        applicationId "{applicationId}"
        minSdkVersion 14
        targetSdkVersion 20
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.Android.support:appcompat-v7:20.+'
    compile 'com.google.Android.gms:play-services:6.1.+'
}

Google Play Servicesの最新バージョンは、次の場所にあります。 https://developer.Android.com/google/play-services/index.html

2
d.danailov

私は次のことを行った後、これを機能させました:

  • Google-play-services-libをモジュールとして使用し(モジュールとプロジェクトの違いに注意)、google-play-services.jarをモデルの「libs」ディレクトリに追加します。
  • その後、ライブラリを作成してjarをビルドパスに追加するか、jarを別のライブラリに追加します。通常、すべての/libs/*.jarファイルを追加する単一のIDEAライブラリーがあります。
  • モジュール設定(F4)を使用して、モジュールのビルドパスにライブラリを追加します。
  • Google-play-services-libをプロジェクトのモジュール依存関係として追加します。
  • できた!

注:これは、ランタイム例外も提供しませんが、機能します。

1
Johan S

プロジェクトbuild.gradleファイルを開き、依存関係モジュールの下に次の行を追加します。

dependencies {
    compile 'com.google.Android.gms:play-services:7.0.0'
}

以下は追加されますGoogle AnalyticsおよびMaps完全なライブラリを統合したくない場合

dependencies {
    compile 'com.google.Android.gms:play-services-analytics:7.0.0'
    compile 'com.google.Android.gms:play-services-maps:7.0.0'
}
0
Pankaj

私の場合google-play-services_libは、GoogleマップとGCMのモジュール(外部ライブラリ)として統合されます私のプロジェクトで。

今、これらの時間はGoogle Places Autocomplete APIを実装する必要がありますが、問題はコードが新しく、私のライブラリが古いためクラスが見つからないということです:

次の手順に従ってください...

1>GoogleプレイサービスをSDKマネージャーに更新

2> Google Playサービスの新しい.jarファイルを選択します(Sdk/extras/google/google_play_services/libproject/google-play-services_lib/libs)古いファイルに置き換えます

成功しました... !!!

0
Dhruv Raval