Google Play開発者サービスライブラリの更新と不足しているシンボル@ integer / google_play_services_version


186

プロジェクトを最新バージョンのGoogle Play開発者サービス(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" />

これを行うことは完全にうまくいき、プロジェクトとアプリをコンパイルして実行することができます。しかし、それは明らかにアップグレード性の問題を伴う望ましくない修正です。

何か案は?


現在、まったく同じ問題がありますが、整数を見つけることができませんでした。
ビョルン・ハルストレム

回答:


256

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

Eclipse->インポート->既存のAndroidコード->参照-> google-play-services_libフォルダー(android-sdk / extras / google / google_play_services / libproject)に移動します。

次に、プロジェクトで

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


私はこれを試しましたが(フォルダーを見つけるための他の質問の指示に従います)、Eclipseは.project指定されたgoogle-play-services_libディレクトリーにファイルを書き込むことができないと言っています。明らかに、直接の理由は、EclipseがSDKが置かれているProgram Filesディレクトリに書き込むことができないことですが、より具体的な質問は、なぜ.projectファイルの変更(明らかにSDKに属しているため「正しい」はず)が必要なのかということです。そもそも。
またはMapper 14

これまでに見たことがないので、修正方法を正確に知りません。そのことを念頭に置いて、明示的に変更されていない限り、エラーがフォルダー内に存在するとは思いません。それは単に時代遅れであり、再ダウンロードする必要がある可能性があります(問題になる可能性は低いですが、あなたは決して知りません)。
PSchuette 2014

ライブラリを追加しようとしたとき、またはプロジェクトをインポートしようとしたときに、このエラーが発生しましたか?
PSchuette 2014

ありがとう、Eclipseで働いてくれました。私はそれを正しくやったと思ったが、やり直したことでコンパイラの問題は修正された。
アンナビルストローム2014年

4
インポートする必要があるフォルダはこちらです:extras \ google \ google_play_services \ libproject
Kamil Szot

78

この修正はIntelliJユーザーにのみ適用されることに注意してください!! (この投稿の下部にある、すべての人に当てはまる詳細情報。)

この問題を修正しました!IntelliJを使用していgoogle-play-services_libますが、依存関係としてモジュールを含める方法を誤って構成したことがわかりました。

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

ステップ1-初期プロジェクト構造 だから私のプロジェクト構造はこのように見え始めました...

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

ステップ3-モジュールの依存関係としてgoogle-play-servicesを追加しました 次にgoogle-play-services_lib、ライブラリ依存関係ではなくモジュール依存関係として追加しました。次に、下部にある上矢印ボタンを数回押して、この依存関係をリストの上部に移動します。しかし、下部のエラーに注意してください(まだ完了していません!)

手順4-電球をクリックしてgoogle-play-servicesライブラリを依存関係として追加します 次に、ダイアログ下部のエラーメッセージ領域にある電球をクリックして、2つの選択肢(依存関係に追加...またはライブラリを削除)を提供するこの小さな小さなポップアップを表示しました。[ 依存関係に追加... ]オプションクリックします。

ステップ5-ライブラリをgoogle-play-services_libモジュールに追加する 新しい小さなダイアログウィンドウがポップアップするはずです。これには2つの選択肢がありました。1つは私のメインプロジェクト(名前はぼやけています)と、もう1つはgoogle-play-services_libプロジェクトです。あなたのプロジェクトによっては、もっとたくさんあるかもしれません(あなたが見るかもしれないactionbarsherlockように、そのようなもの)。選択google-play-services_libしてOKをクリックします。

そして最後に、あなたは終わりました!これが他の誰かの役に立つことを願っています!

詳細情報

私はので、この問題はそもそも起こったことが理由であると考えていると思った私はきちんと全体含まれていたことをgoogle-play-services_lib私の全体的なプロジェクトにプロジェクトを...しかし、私は実際にはいなかった、とだけではなく、適切にそのjarファイルを(含まれていましたgoogle-play-services_lib/libs/google-play-services.jar)。そのjarファイルにはコードのみが含まれ、Androidリソースの値は含ま@integer/google_play_services_versionれませ。そのため、この値は実際にはプロジェクトにはありませんでした。しかし、コードは私のプロジェクトで使用することができたので、すべてがうまくいったように見えました。

補足として、この問題を修正すると、GooglePlayServicesUtil.getErrorDialog(...).show()以前使用していたクラッシュも修正されたようです。しかし、アップデートによって修正された可能性もあります。


2
私のために働いていません。「エラーメッセージ領域のダイアログの下部にある2つの選択肢を提供するこの小さなポップアップを表示する電球」がありません
Vadorequest

2
あなたの場合、多分あなたのプロジェクトからGoogle Play開発者サービスを完全に削除してから再インポートしてみます。この欠落した整数の問題は、Google Play開発者サービスが最初に不適切にインポートされた場合にのみ発生するため、ゼロから始めることをお勧めします。
Charles Madere 2013

1
@Vadorequestでは、google-play-services-libモジュールを選択して、google-play-services.jarファイルをモジュールの依存関係として追加することもできます(!google-play-services-libモジュールに!)
Su-Au Hwang

2
この回答(IntelliJ固有)に加えて、実際にライブラリのメソッド/クラスを使用する予定の場合は、[ファイル]> [プロジェクト構造]> [google-play-services_libモジュール]> [依存関係]を選択し、[エクスポート済み]をチェックする必要があります。 google-play-services.jar
Su-Au Hwang

2
概要:libprojectディレクトリをモジュールとして追加し、メインプロジェクトへの依存関係にして、libprojectディレクトリから整数値を取得します
John61590

31

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


これも私を解決した解決策でした、私に尋ねると、それはグーグルによる信じられないほどの監視です。
Henrique de Sousa

おかげで、これで問題が解決しました
Fabii

1
これで問題が解決しました。Eclipseインポートがこのファイルをスキップしたのはなぜですか?どんな手掛かり?
nizam.sp 2014年

24

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

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

MyProjectName/res/values/version.xml

3
これでうまくいきますが、問題は、Google Play開発者サービスライブラリの新しいバージョンへのアップグレードが少し面倒になることです。おそらくversion.xml、アップグレードのたびにファイルを置き換える必要があります。
Charles Madere 2013

20

Gradleを使用するすべての人に:プロジェクトソースを含めず、代わりにSDK Managerを使用してダウンロードし、次の行を依存関係に追加します。

compile 'com.google.android.gms:play-services:4.0.30'

それが見つからないことのみ:エラー:プロジェクト ':app'の構成中に問題が発生しました。>構成 ':app:_debugCompile'のすべての依存関係を解決できませんでした。> com.google.android.gms:play-services:6.1。+に一致するバージョンが見つかりませんでした。次の場所で検索: jcenter.bintray.com/com/google/android/gms/play-services/... jcenter.bintray.com/com/google/android/gms/play-services
マッテオを

ファイル:/home/teo/Documents/programmi/android-studio-new/sdk/extras/android/m2repository/com/google/android/gms/play-services/maven-metadata.xml file:/ home / teo / Documents / programmi / android-studio-new / sdk / extras / android / m2repository / com / google / android / gms / play-services /必須:xxxxxxx:app:
unspecified

ライブラリを探すパスは、SDKマネージャーが実際にライブラリをダウンロードした場所と一致していないようですが、シンボリックリンクを作成した後でも、問題は修正されません。正確にどのファイルやフォルダを見つける必要があるのか​​わからないと思います。何か案が?
matteo 2014年

1
お持ちのバージョンを確認するには、「ls -1 $ ANDROID_HOME / extras / google / m2repository / com / google / android / gms / play-services」をご覧ください。新しいバージョンを入手するには、SDKマネージャーを実行し、必要なコンポーネントを更新します。シンボリックリンクをいじらないでください。
Sofi Software LLC、

12
  1. Android SDK Managerから「Google Play Services」と「Googleリポジトリ」をインストールします。
  2. compile 'com.google.android.gms:play-services:4.1.32@aar'をに追加しますbuild.gradle
  3. その結果、リソース@integer/google_play_services_versionは使用可能になります。

1
私はこのコンパイル「com.google.android.gms:play-services:4.4.52」を追加しました
powder366

これは私のためにそれをしました。build.gradleの依存関係セクションの最終結果がどのように見えるかを公開した人はいませんでした...参考になったでしょう
snowking16

10

袖口を外すと、プロジェクトは古いバージョンのPlay Servicesライブラリプロジェクトに接続されているように感じられます。Googleが推奨するアプローチは、SDKでライブラリプロジェクトを見つけてローカルコピーを作成することです。ただし、これは、SDK Managerを介してPlay Servicesライブラリプロジェクトを更新するたびに、コピーを新しいコピーに置き換える必要があることを意味します。


はい、Android SDK Managerでダウンロードしたファイルのコピーを作業ディレクトリに配置することで、ライブラリをプロジェクトに統合しました。また、私はライブラリをこの新しいバージョンに更新しました(Android SDKディレクトリからファイルをコピーし、プロジェクトの既存のファイルを上書きしました)。
Charles Madere 2013年


7

最後のバージョンへの更新後、すべてのプロジェクトでこの問題が発生しましたが、ライブラリ参照を追加するだけで解決しました:

Eclipseのワークスペースにライブラリがない場合は、次のように追加できます。- File> Import-> Existing Android Code Into Workspace->参照して、google-play-services_libプロジェクトlibに移動します(android-sdk/extras/google/google_play_services/libproject)。

ここに画像の説明を入力してください

次に、プロジェクトのフォルダーを削除/bin/gen(クリーンオプションに似たもの)、プロジェクトを再度ビルドします。


しかし、これによりapkは5MB重くなります
Siddharth

6

Eclipse用に解決

次の手順に従います。

  1. import-> Existing Android Code Into Workspaceを使用して、google-play-services_libフォルダーをプロジェクトとしてインポートします
  2. プロジェクトのプロパティからAndroidセクションを選択し、下部の[ライブラリ]セクションで[追加]をクリックしてgoogle-play-services_libを選択し、適用http://i.stack.imgur.com/opSeJ.pngリンクに従ってスクリーンショットを表示します

google-play-services_libがいたF:\Android\sdk\extras\google\google_play_services\libproject\google-play-services_lib
ダニエルボネッティ2015年

5

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

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

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

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

ここで説明するように、\ sdk \ extras \ google \ m2repository \ com \ google \ android \ gms \ play-servicesフォルダーで、開発マシンにダウンロードしたplay-servicesのバージョンのバージョン番号を確認できます。 :Google Play開発者サービスのリビジョンをインストールバージョンと一致させるにはどうすればよいですか?


最後に、Android初心者のための良い、明確な答えです。この答えはもっと上に置くべきです。
Jelle

4

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

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


3

同じ問題がありました。version.xmlファイルはgoogle-play-services_libにありませんでした。SDKマネージャーを起動して、更新、特に「エクストラ」に関連するものを受け入れるだけです。


2

google-play-services_libのインポート中に、AndroidManifest.xmlとversion.xmlで定義されているバージョンコードを確認します。私はバージョンコードの違いを見つけて、それを4242000に変更しました。変更後、@ integer / google_play_services_versionにコンパイルエラーはなくなります。ここに画像の説明を入力してください


2
これは良い方法ではありません。Google Play開発者サービスを更新するたびに、手動で更新する必要があります。
PSchuette 2014

2

Google Play開発者サービスをModule:app gradleビルドファイルに追加することで修正しました。ドキュメントには、GMSを更新するときにバージョンを更新するように記載されています。

dependencies {

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

} 

1

以下は、Google Play Service Libを使用するときに多くのエラーを回避する主なアクションです。

  1. libプロジェクトをEclipseプロジェクトのワークスペースにコピーしてください。
  2. Google Play Service libプロジェクトのターゲットSDKは「Google
  3. API」3-メタデータをマニフェストファイルに追加する必要があります。
  4. 19に完全に更新しない限り、プロジェクトターゲットSDKは17である必要があります。19がうまく機能しない場合があるためです。

1

MavenとIntelliJを使用するプロジェクトでも同じ問題が発生しました。Google Play開発者サービスはMaven依存関係として追加されます。mavenビルドはコマンドラインからは正常に機能しましたが、IntelliJはこの欠落したシンボルについて不平を言っていました@integer/google_play_services_version

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


1

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

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

1

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

「android」コマンドを使用して、必要なすべてのパーツをインストールします。次に、プロジェクトルートにgoogle-play-service_lib /のコピーを置きます。project.propertiesを編集して、次の行を含めます。

android.library.reference.1=./google-play-services_lib

しかしandroid update project -p . -t android-22google-play-services_lib最初に必要です。同等に、に追加<property name="android.library.reference.1" value="./google-play-services_lib"/>しますbuild.xml(私は最小化し、build.xmlを捨てました.properties)。
Ciro Santilli郝海东冠状病六四事件法轮功

0

同じ問題がありました。問題は、「google-play-services.jar」が google_play_service_libプロジェクトの一部であるにもかかわらず、プロジェクトに適切にインポートさなかったことでした。Eclipseを使用している場合は、Android Private LibrariesセクションにPlay Services jarファイルが表示されているかどうか、およびライブラリによってエクスポートされているかどうかを確認してください。

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


0

Android SDK ManagerのExtrasフォルダーにあるGoogle Play開発者サービスを更新しました


0

私にとっての問題は、ライブラリプロジェクトと再生サービスを使用するプロジェクトが異なるディレクトリにあることでした。これだけ:

  • 1.同じワークスペースにファイルを追加してから、ライブラリを削除します。
  • 2.日食を再開する
  • 3.ライブラリプロジェクトを再度追加する
  • 4.クリア

0

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

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

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


0

2017年に見ている誰でも、プレイサービスの10.0.1バージョンはインポートする必要がありますplay-services-basement(使用するにはplay-services-base)。


もう少し説明してもらえますか?現在の依存関係を確認するには、どうすればよいですか?
Hassan Gulzar 2017

この答えを書いたとき、私はそれをすべて手作業で、そして試行錯誤で行いました。Gradleを使用すると、物事がはるかに簡単になりました。
goobliata

0

Windows 10でのAndroid Studio 3.3.2

[ファイル]-> [キャッシュの無効化/再起動]invalidate and Restart表示されたダイアログの[ 選択]ボタン。


0

私は同じ問題を抱えていました、あなたのbuild.gradleにこの2行を追加してください問題はおそらく解決されるでしょう。;)

dependencies {  
  implementation 'com.google.android.gms:play-services:12.0.1'  
  implementation 'com.google.android.gms:play-services-vision:10.0.0'    
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.