[解決済み] Google Play サービスライブラリの更新と記号の欠落 @integer/google_play_services_version
質問
プロジェクトをGoogle Play Servicesの最新バージョンにアップグレードする際、(
v4.0、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で修正したので、ここにスクリーンショットを2枚掲載します。
というわけで、私のプロジェクト構造は、最初はこんな感じでした。
次に
google-play-services
ライブラリを選択し、一番下にあるマイナスボタンをクリックして、依存関係リストから除外しました。ダイアログの下部にあるエラーに注目してください。私のプロジェクトはこのライブラリを絶対に必要としています。でも心配しないでください、すぐに再追加しますよ!
次に
google-play-services_lib
をライブラリの依存関係ではなくモジュールの依存関係としました。そして、この依存関係をリストの一番上に移動させるために、一番下にある上矢印ボタンを何回か押しました。しかし、一番下にあるエラーに注目してください (まだ終わっていません!)。
次に、エラーメッセージ領域のダイアログの下部にある電球をクリックすると、この小さな小さなポップアップが表示され、2つの選択肢( 依存関係に追加... または ライブラリの削除 ). をクリックします。 依存関係に追加する... というオプションがあります。
新しい小さなダイアログウィンドウが表示されたはずです。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()
のクラッシュが発生することがありました。しかし、これもアップデートによって修正された可能性があり、100%確実ではありません。
関連
-
AndroidエミュレーターのADBサーバーがACKしない問題
-
Gradle の同期に失敗しました。com.android.tools.build:gradle が見つかりませんでした。
-
Androidで発生した問題、解決策とヒント
-
Android studioのインストールと問題発生、Emulator: PANIC: AVDのシステムパスが見つかりません。
-
アンドロイドスタジオのエラーを解決する --> Error:(1, 0) id 'com.android.application' を持つプラグインが見つかりません。
-
エラー:未宣言の識別子(AS)の使用
-
アンドロイドリストビュー
-
超シンプルなアンドロイドのタイムディレイ機能
-
アンドロイドスタジオソフトウェア使用詳細説明書
-
[解決済み] Genymotion VMにGoogle Play Servicesをインストールする方法(ドラッグ&ドロップ非対応)?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Android のパッケージングに失敗し、Android リソースのリンクに失敗したことを示すプロンプトが表示される
-
Android: インポートモジュールエラー Android リソースのリンクに失敗しました
-
Android studioのインストールと問題発生、Emulator: PANIC: AVDのシステムパスが見つかりません。
-
指定された子にはすでに親がいます。まず、その子の親に対して removeView() をコールする必要があります。
-
例外「指定された子にはすでに親がいます」の解決方法。removeViewを呼び出す必要があります" の解決方法(ソースコード付き例)
-
Android カスタムスピナーコントロールのドロップダウン・ボックスの実装
-
android bluetooth--Bluetooth on、検索、ペアリング、接続
-
アンドロイドスタジオソフトウェア使用詳細説明書
-
Android.support.v7.widget.Toolbar が見つかりませんでした。
-
[解決済み] com.google.android.gmsはどこにあるのですか?