web-dev-qa-db-ja.com

Google Playサービスライブラリの更新と欠落している記号@ integer / google_play_services_version

私のプロジェクトを最新バージョンの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" />

これを実行してもまったく問題なく動作します。プロジェクトとアプリケーションをコンパイルして実行できます。しかし、それは明らかにアップグレード可能性の問題が明らかに望ましくない修正です。

何か案は?

186
Charles Madere

この修正はIntelliJユーザーにのみ適用される場合があります。 (この記事の最後にある、すべての人に当てはまるはずの情報です。)

この問題を修正しました!私は IntelliJ を使用していますが、google-play-services_libモジュールを依存関係として含める方法を誤って設定しただけです。

ファイルを編集することではなくGUIを使用してこれを完全に修正したので、ここにいくつかのスクリーンショットがあります。

Step 1 - Initial Project Structure それで、私のプロジェクト構造は、このように見え始めました...

Step 2 - Removed google-play-services library それから私はgoogle-play-servicesライブラリをそれを選択し、それから一番下のマイナスボタンをクリックすることによって私の依存関係リストから削除しました。私のプロジェクトでは絶対にこのライブラリが必要なので、ダイアログの下部にあるエラーに注意してください。しかし、心配しないでください、すぐに再追加します。

Step 3 - Added google-play-services as a module dependency 次に、ライブラリの依存関係ではなくgoogle-play-services_libをモジュールの依存関係として追加しました。それから、一番下の上矢印ボタンを数回押して、この依存関係をリストの一番上に移動します。しかし、一番下のエラーに注意してください(まだ終わっていません!)

Step 4 - Click the lightbulb to add the google-play-services library as a dependency 次に、エラーメッセージ領域のダイアログ下部にある電球をクリックして、この小さなポップアップを表示しました。2つの選択肢があります(依存関係に追加...またはライブラリを削除する)。依存関係に追加...オプションをクリックしてください。

Step 5 - Add the library to the google-play-services_lib module 新しい小さなダイアログウィンドウがポップアップしたはずです。それは私に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%確実というわけではありません。

78
Charles Madere

Eclipseを使っているすべての人にとって、これはあなたがそうすべき方法です。

Eclipse - >インポート - >既存のAndroidコード - >閲覧 - > google-play-services_lib FOLDER(Android-sdk/extras/google/google_play_services/libproject)に移動します。

それから、あなたのプロジェクトで

コントロールクリック - >プロパティ - > Android - >ライブラリ、追加 - >インポートしたプロジェクトを選択 - > OK

257
PSchuette

私は同じ問題に直面しました、そしてどうやらEclipseはコピーを作る間、どうにかオリジナルのversion.xmlプロジェクトから/ res/valuesにgoogle-play-services_libファイルを残しました。元のプロジェクトからファイルを取り出し、それをプロジェクトのコピーに貼り付けたところ、問題は解決しました。

31
Atul Goyal

Eclipseでは、Google Playライブラリをプロジェクトワークスペースにインポートした後、version.xmlファイルをコピーしたところです。

google-play-services_lib/res/values/version.xml

MyProjectName/res/values/version.xml
24

Gradleを使っている人のために:プロジェクトのソースを含めずに、SDK Managerを使ってダウンロードし、この行を依存関係に追加してください。

compile 'com.google.Android.gms:play-services:4.0.30'
20
  1. Android SDK Managerから「Google Play Services」と「Google Repository」をインストールします。
  2. compile 'com.google.Android.gms:play-services:4.1.32@aar'をあなたのbuild.gradleに追加してください。
  3. その結果、リソース@integer/google_play_services_versionが利用可能になります。
11
Andrey Grebnev

カフを離れて、それはあなたのプロジェクトがPlay Servicesライブラリプロジェクトの古いバージョンに接続されているように感じます。 Googleが推奨する方法は、SDKでライブラリプロジェクトを見つけてローカルコピーを作成することです。ただし、これは、SDKマネージャを介してPlay Servicesライブラリプロジェクトを更新するたびに、自分のコピーを新しいコピーと置き換える必要があることを意味します。

10
CommonsWare

最後のバージョンへの更新後、私はすべてのプロジェクトでこの問題を抱えていましたが、ライブラリ参照をもう一度追加するだけで解決しました。

eclipseのワークスペースにライブラリを持っていない場合は、次のように追加します。File - > Import - > Existing Android Code Into Workspace - > google-play-services_lib project libを参照してナビゲートします(Android-sdk/extras/google/google_play_services/libproject)。

enter image description here

それから私のプロジェクトの/bin/genフォルダーを削除し(cleanオプションに似たもの)、そして再び私のプロジェクトをビルドします。

7
Elenasys

Google_play_services_froyoを使用しようとしたときにも私はこれに遭遇しました。

このバグを報告しました。 https://code.google.com/p/google-plus-platform/issues/detail?id=734

7
AG1

Eclipse用に解決されました

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

  1. インポート - >既存のAndroidコードをワークスペースに使用して、google-play-services_libフォルダーをプロジェクトとしてインポートします。
  2. プロジェクトのプロパティから[Android]セクションを選択し、下部にある[Library]セクションで[Add]をクリックし、[google-play-services_lib]を選択して[Apply]をクリックします。リンクをたどる /opSeJ.png スクリーンショットを見る
6

GoogleのAndroid Developerサイトには、「Google Playサービスをプロジェクトに追加する」方法が記載されています。また、Playサービスのバージョンをアップグレードする方法にも関連しています。 Eclipse、Android Studio、または「その他」のいずれかの手順を表示するためのドロップダウンメニューもあります。指示が変更された場合に備えて、指示を表示するのに最適な場所です。このページはここにあります:

http://developer.Android.com/google/play-services/setup.html

しかし、ここでの答えのほとんどはEclipseに関するものなので、ここではPlay ServicesをAndroid Studioでアップグレードするための簡単な要約を示します。

  1. アプリケーションモジュールディレクトリ内のbuild.gradleファイルを開きます。注:Android Studioプロジェクトには、各モジュール用の最上位のbuild.gradleファイルとbuild.gradleファイルが含まれています。アプリケーションモジュールのファイルを必ず編集してください。
  2. 開発マシンにダウンロードしたplay-servicesのバージョンを参照するように、 "dependencies"の下のビルドルールを更新します。

ここで説明しているように、\ sdk\extras\google\m2repository\com\google\Android\gms\play-servicesフォルダーを見ると、開発用マシンにダウンロードしたplay-servicesのバージョンのバージョン番号がわかります: Google Play Servicesのリビジョンとインストールバージョンをどのように一致させるのですか?

5
Eric Barr

Eclipseの場合、google-play-services_libへのプロジェクト参照を追加しました。

プロパティ - Android [ライブラリ]ペイン(下部ペイン)に、google-play-services_libが表示されていることを確認します。表示されていない場合は、[追加]ボタンをクリックして[google-play-services_lib]を選択します。

4
hNdroid

私は同じ問題を抱えていた、version.xmlファイルはgoogle-play-services_libにありませんでした。ちょうどあなたのSDKマネージャを起動し、更新、特に "エクストラ"に関連するものを受け入れます。

3
user2167877

Google Playサービスを私のモジュールに追加することで修正されました:アプリグラドルビルドファイル。 GMSをアップデートすると、バージョンもアップデートするようにドキュメントに書かれています。

dependencies {

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

} 
2
Hugh Brady

Google-play-services_libのインポート中に、AndroidManifest.xmlおよびversion.xmlで定義されているバージョンコードを確認してください。バージョンコードの違いを見つけて、それを4242000に変更しました。変更後、@ integer/google_play_services_versionにコンパイルエラーがなくなりました。enter image description here

2
Shanki Bansal

私の場合は、私のアプリのソースコードの同じドライブにgoogle-play-services_libフォルダをコピーする必要がありました。

  • F:\ Products\Android\APP * .Java < - 私のアプリはここにあるので、下のフォルダにコピーしました
  • F:\ Products\Android\libs\google-play-services_lib
1
fedmich

以下は、GoogleのプレイサービスLibを使用する際に多くのエラーを回避する主なアクションです:

  1. Libプロジェクトを必ずEclipseプロジェクトワークスペースにコピーしてください。
  2. グーグルプレイサービスlibプロジェクトのための目標SDKは "グーグルであるべきです
  3. API "3 - メタデータをマニフェストファイルに追加する必要があります。
  4. プロジェクトターゲットSDKは、19に完全に更新していない限り、17にする必要があります。
1
Ayman Al-Absi

MavenとIntelliJを使ったプロジェクトでも同じ問題がありました。グーグルプレイサービスはmavenの依存関係として追加されます。 Mavenのビルドはコマンドラインからうまく機能しましたが、IntelliJはこの欠けているシンボル@integer/google_play_services_versionについて不満を述べました。

私の場合、私はmaven POMファイルの更新を強制しましたそしてそれは問題を解決しました。

1
Pierre Henry

IDEを使用せず、コマンドラインビルド(antとndk-buildを使用)を使用する場合、これを解決する方法は次のとおりです。

'Android'コマンドですべての必要な部分をインストールしてください。それからプロジェクトルートにgoogle-play-service_lib /のコピーを持ってください。この行を含めるようにproject.propertiesを編集します。

Android.library.reference.1=./google-play-services_lib
1
Bram

Windows 10下のAndroid Studio 3.3.2

ファイル - >キャッシュの無効化/再起動を選択し、ダイアログのinvalidate and Restartボタンをクリックしてください。

0
isabsent

Googleは、SDKディレクトリから直接プロジェクトを作成しないことをお勧めします。 libプロジェクトをアプリのある場所にコピーしてからそこからインポートすることをお勧めします。それ以外の場合は、次に別のアプリケーション用にプロジェクトをインポートするときに、そのプロジェクトが既に使用されています。

https://developer.Android.com/google/play-services/setup.html

注意:自分が開発ワークスペースにコピーしたライブラリのコピーを参照する必要があります。AndroidSDKディレクトリから直接ライブラリを参照しないでください。

0
Shygar

2017年を見ている人は誰でも、プレイサービスの10.0.1バージョンはplay-services-basementのインポートが必要です(以前はplay-services-baseに入っていました)。

0
goobliata

私は同じ問題を抱えていました。問題は、 "google-play-services.jar"がgoogle_play_service_libプロジェクトの一部であっても、私のプロジェクトに正しくインポートされなかったことでした。 Eclipseを使用している場合は、Android Private Librariesセクションにplay services jarファイルがあるかどうか、またライブラリによってエクスポートされているかどうかを確認してください。

Android SDKプラットフォームツールバージョン17(19ではない)およびAndroid SDKツールバージョン22.0.1を使用しています

0
Punit Raizada

Android SDK ManagerのExtrasフォルダにあるGoogle Playサービスを更新したところです。

0
KarenAnne

私にとって問題だったのは、図書館プロジェクトとplayサービスを使っているプロジェクトが別々のディレクトリにあることです。これだけ:

  • 1.ファイルを同じワークスペースに追加してから、ライブラリを削除します。
  • 2.Eclipseを再起動します。
  • 3.ライブラリプロジェクトをもう一度追加します。
  • 4.クリア
0
makkasi