新しい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クラスの使用を開始した後にのみ発生します。誰かがこの問題の背後にある理由を説明できれば幸いです。
Gradleプラグインv0.4.2のリリース、AndroidスタジオでのGoogle Playサービスのセットアップは簡単なので、これらの答えはすべて間違っています。 jarをインポートしたり、プロジェクトライブラリを追加したり、Androidスタジオで新しいモジュールを追加したりする必要はありません。あなたがしなければならないことは、build.gradleファイルに正しい依存関係を追加することです。これらのリンクをご覧ください: Gradle plugin v0.4.2 update 、 New 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のメジャーアップデートの後、@ user123321のコメントで提案されている次の指示に従って、プロジェクトをクリーンアップします。
プロジェクトフォルダーにcd
./ gradlew clean
./ gradlew build
出来上がり! Gradleと戦う必要はありません:)
編集:この男は本当に家に持ち帰り、良い小さなチュートリアルを持っています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ファイルを手動で変更する必要があると説明しています。私はこれを成功させました。コピーしました
libディレクトリに追加し、build.gradleファイルに次を追加しました
dependencies {
compile files('libs/Android-support-v4.jar')
compile files('libs/google-play-services.jar')
}
また、これがnewプロジェクトの場合は、この投稿もチェックしてください。
これらの回答のほとんどは、コンパイル時の依存関係のみを対象としていますが、実行時に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サービスライブラリプロジェクトの両方を必ずエクスポートしてください。インポートすると、ライブラリプロジェクトが検出され、モジュールとしてインポートされます。プロジェクトのインポートプロセス中にすべてのデフォルトを受け入れました。
上記の解決策のどれも私にとってはうまくいきませんでした。それが私のセットアップに固有なのか、それとも新しいリリースに固有なのかはわかりません。
私は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:プレイサービスを検索するとき、これは今ではありませんが、リストを直接スクロールして見るとすぐそこにあることに気付きました。
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
ヘルプが必要な場合はコメントを入力してください。ハッピーコーディング。
この記事に従ってください-> http://developer.Android.com/google/play-services/setup.html
[Android Studioの使用]を選択する必要があります
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
私は次のことを行った後、これを機能させました:
注:これは、ランタイム例外も提供しませんが、機能します。
プロジェクト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'
}
私の場合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)古いファイルに置き換えます
成功しました... !!!