私のプロジェクトを最新バージョンのGoogle Play Services( v4.0、Halloween 2013 でリリース)にアップグレードする際、新しいタグを追加する必要がありますAndroidManifest.xml
ファイルに追加します。
<meta-data
Android:name="com.google.Android.gms.version"
Android:value="@integer/google_play_services_version" />
残念ながら、それをやろうとすると、コンパイルエラーになります。
Android-apt-compiler: /blahblah/AndroidManifest.xml:409: error: Error: No resource found that matches the given name (at 'value' with value '@integer/google_play_services_version').
google-play-services_lib/res/values/version.xml
のファイルに移動して、そのシンボルの生の整数を見ることができます。
<integer name="google_play_services_version">4030500</integer>
それからそれを私のAndroidManifest.xml
に挿入します。
<meta-data
Android:name="com.google.Android.gms.version"
Android:value="4030500" />
これを実行してもまったく問題なく動作します。プロジェクトとアプリケーションをコンパイルして実行できます。しかし、それは明らかにアップグレード可能性の問題が明らかに望ましくない修正です。
何か案は?
この修正はIntelliJユーザーにのみ適用される場合があります。 (この記事の最後にある、すべての人に当てはまるはずの情報です。)
この問題を修正しました!私は IntelliJ を使用していますが、google-play-services_lib
モジュールを依存関係として含める方法を誤って設定しただけです。
ファイルを編集することではなくGUIを使用してこれを完全に修正したので、ここにいくつかのスクリーンショットがあります。
それで、私のプロジェクト構造は、このように見え始めました...
それから私はgoogle-play-services
ライブラリをそれを選択し、それから一番下のマイナスボタンをクリックすることによって私の依存関係リストから削除しました。私のプロジェクトでは絶対にこのライブラリが必要なので、ダイアログの下部にあるエラーに注意してください。しかし、心配しないでください、すぐに再追加します。
次に、ライブラリの依存関係ではなくgoogle-play-services_lib
をモジュールの依存関係として追加しました。それから、一番下の上矢印ボタンを数回押して、この依存関係をリストの一番上に移動します。しかし、一番下のエラーに注意してください(まだ終わっていません!)
次に、エラーメッセージ領域のダイアログ下部にある電球をクリックして、この小さなポップアップを表示しました。2つの選択肢があります(依存関係に追加...またはライブラリを削除する)。依存関係に追加...オプションをクリックしてください。
新しい小さなダイアログウィンドウがポップアップしたはずです。それは私に2つの選択肢を与えました。1つは私のメインプロジェクトのためのものです(名前はぼやけています)、そしてもう1つはgoogle-play-services_lib
プロジェクトのためのものです。あなたのプロジェクトによってはもっとたくさんのものがあるかもしれません(actionbarsherlock
を見ることができるように、そのようなもの)。 google-play-services_lib
を選択して[OK]をクリックしてください。
そして最後に、これで終わりです。これが他の誰かに役立つことを願っています!
私がこの問題が最初から起こっていたのは、Ithoughtが私のプロジェクト全体にgoogle-play-services_lib
プロジェクト全体を適切に含めたからです。そうではなく、代わりにそのjarファイル(google-play-services_lib/libs/google-play-services.jar
)を正しくインクルードしただけでした。このjarファイルにはコードだけが含まれ、Androidリソースの値は含まれていません。そのため、私のプロジェクトでは、@integer/google_play_services_version
の値は本当ににはなりませんでした。しかし、そのコードは私のプロジェクトで使用することができたので、すべてが問題ないように見えました。
そして、副次的な注意として、この問題を修正することは私が以前持っていたGooglePlayServicesUtil.getErrorDialog(...).show()
クラッシュも修正したようです。しかし、それはアップデートによっても修正された可能性があり、100%確実というわけではありません。
Eclipseを使っているすべての人にとって、これはあなたがそうすべき方法です。
Eclipse - >インポート - >既存のAndroidコード - >閲覧 - > google-play-services_lib FOLDER(Android-sdk/extras/google/google_play_services/libproject)に移動します。
それから、あなたのプロジェクトで
コントロールクリック - >プロパティ - > Android - >ライブラリ、追加 - >インポートしたプロジェクトを選択 - > OK
私は同じ問題に直面しました、そしてどうやらEclipseはコピーを作る間、どうにかオリジナルのversion.xml
プロジェクトから/ res/valuesにgoogle-play-services_lib
ファイルを残しました。元のプロジェクトからファイルを取り出し、それをプロジェクトのコピーに貼り付けたところ、問題は解決しました。
Eclipseでは、Google Playライブラリをプロジェクトワークスペースにインポートした後、version.xmlファイルをコピーしたところです。
google-play-services_lib/res/values/version.xml
に
MyProjectName/res/values/version.xml
Gradleを使っている人のために:プロジェクトのソースを含めずに、SDK Managerを使ってダウンロードし、この行を依存関係に追加してください。
compile 'com.google.Android.gms:play-services:4.0.30'
compile 'com.google.Android.gms:play-services:4.1.32@aar'
をあなたのbuild.gradle
に追加してください。@integer/google_play_services_version
が利用可能になります。カフを離れて、それはあなたのプロジェクトがPlay Servicesライブラリプロジェクトの古いバージョンに接続されているように感じます。 Googleが推奨する方法は、SDKでライブラリプロジェクトを見つけてローカルコピーを作成することです。ただし、これは、SDKマネージャを介してPlay Servicesライブラリプロジェクトを更新するたびに、自分のコピーを新しいコピーと置き換える必要があることを意味します。
eclipseのワークスペースにライブラリを持っていない場合は、次のように追加します。File
- > Import
- > Existing Android Code Into Workspace
- > google-play-services_lib
project libを参照してナビゲートします(Android-sdk/extras/google/google_play_services/libproject
)。
/bin
と/gen
フォルダーを削除し(cleanオプションに似たもの)、そして再び私のプロジェクトをビルドします。Google_play_services_froyoを使用しようとしたときにも私はこれに遭遇しました。
このバグを報告しました。 https://code.google.com/p/google-plus-platform/issues/detail?id=734
Eclipse用に解決されました
次の手順に従ってください:
GoogleのAndroid Developerサイトには、「Google Playサービスをプロジェクトに追加する」方法が記載されています。また、Playサービスのバージョンをアップグレードする方法にも関連しています。 Eclipse、Android Studio、または「その他」のいずれかの手順を表示するためのドロップダウンメニューもあります。指示が変更された場合に備えて、指示を表示するのに最適な場所です。このページはここにあります:
http://developer.Android.com/google/play-services/setup.html
しかし、ここでの答えのほとんどはEclipseに関するものなので、ここではPlay ServicesをAndroid Studioでアップグレードするための簡単な要約を示します。
ここで説明しているように、\ sdk\extras\google\m2repository\com\google\Android\gms\play-servicesフォルダーを見ると、開発用マシンにダウンロードしたplay-servicesのバージョンのバージョン番号がわかります: Google Play Servicesのリビジョンとインストールバージョンをどのように一致させるのですか?
Eclipseの場合、google-play-services_libへのプロジェクト参照を追加しました。
プロパティ - Android [ライブラリ]ペイン(下部ペイン)に、google-play-services_libが表示されていることを確認します。表示されていない場合は、[追加]ボタンをクリックして[google-play-services_lib]を選択します。
私は同じ問題を抱えていた、version.xmlファイルはgoogle-play-services_libにありませんでした。ちょうどあなたのSDKマネージャを起動し、更新、特に "エクストラ"に関連するものを受け入れます。
Google Playサービスを私のモジュールに追加することで修正されました:アプリグラドルビルドファイル。 GMSをアップデートすると、バージョンもアップデートするようにドキュメントに書かれています。
dependencies {
compile 'com.google.Android.gms:play-services:9.6.1'
}
Google-play-services_libのインポート中に、AndroidManifest.xmlおよびversion.xmlで定義されているバージョンコードを確認してください。バージョンコードの違いを見つけて、それを4242000に変更しました。変更後、@ integer/google_play_services_versionにコンパイルエラーがなくなりました。
私の場合は、私のアプリのソースコードの同じドライブにgoogle-play-services_libフォルダをコピーする必要がありました。
以下は、GoogleのプレイサービスLibを使用する際に多くのエラーを回避する主なアクションです:
MavenとIntelliJを使ったプロジェクトでも同じ問題がありました。グーグルプレイサービスはmavenの依存関係として追加されます。 Mavenのビルドはコマンドラインからうまく機能しましたが、IntelliJはこの欠けているシンボル@integer/google_play_services_version
について不満を述べました。
私の場合、私はmaven POMファイルの更新を強制しましたそしてそれは問題を解決しました。
IDEを使用せず、コマンドラインビルド(antとndk-buildを使用)を使用する場合、これを解決する方法は次のとおりです。
'Android'コマンドですべての必要な部分をインストールしてください。それからプロジェクトルートにgoogle-play-service_lib /のコピーを持ってください。この行を含めるようにproject.propertiesを編集します。
Android.library.reference.1=./google-play-services_lib
Windows 10下のAndroid Studio 3.3.2
ファイル - >キャッシュの無効化/再起動を選択し、ダイアログのinvalidate and Restart
ボタンをクリックしてください。
Googleは、SDKディレクトリから直接プロジェクトを作成しないことをお勧めします。 libプロジェクトをアプリのある場所にコピーしてからそこからインポートすることをお勧めします。それ以外の場合は、次に別のアプリケーション用にプロジェクトをインポートするときに、そのプロジェクトが既に使用されています。
https://developer.Android.com/google/play-services/setup.html
注意:自分が開発ワークスペースにコピーしたライブラリのコピーを参照する必要があります。AndroidSDKディレクトリから直接ライブラリを参照しないでください。
2017年を見ている人は誰でも、プレイサービスの10.0.1バージョンはplay-services-basement
のインポートが必要です(以前はplay-services-base
に入っていました)。
私は同じ問題を抱えていました。問題は、 "google-play-services.jar"がgoogle_play_service_libプロジェクトの一部であっても、私のプロジェクトに正しくインポートされなかったことでした。 Eclipseを使用している場合は、Android Private Librariesセクションにplay services jarファイルがあるかどうか、またライブラリによってエクスポートされているかどうかを確認してください。
Android SDKプラットフォームツールバージョン17(19ではない)およびAndroid SDKツールバージョン22.0.1を使用しています
Android SDK ManagerのExtrasフォルダにあるGoogle Playサービスを更新したところです。
私にとって問題だったのは、図書館プロジェクトとplayサービスを使っているプロジェクトが別々のディレクトリにあることです。これだけ: