web-dev-qa-db-ja.com

Google Playサービスをバージョン13に更新した後、エラーが発生しました

このエラーを解決するにはどうすればよいですか?

原因:Java.lang.illegalargumentexception 11-01 11:08:12.845:E/AndroidRuntime(28885):原因:Java.lang.IllegalStateException:アプリのAndroidManifest.xmlのメタデータタグに適切な値がありません。 4030500が必要ですが、0が見つかりました。要素内に次の宣言が必要です。


google-play-services_libマニフェスト:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.google.Android.gms"
    Android:versionCode="4030530"
    Android:versionName="4.0.30 (889083-30)" >

    <uses-sdk Android:minSdkVersion="8"/>

</manifest>


public void loginGooglePlus() {
    aHelper.setup(this, GameHelper.CLIENT_APPSTATE | GameHelper.CLIENT_GAMES);
    mHelper = aHelper.getAppStateClient();
    //crash is here
    mHelper.connect();
}


完全なエラーログ:

11-01 11:38:13.507: E/AndroidRuntime(31297): FATAL EXCEPTION: main
11-01 11:38:13.507: E/AndroidRuntime(31297): Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.company.application.Android.aja/com.company.application.Android.aja.BeetleBattleAndroidActivity}: Java.lang.IllegalStateException: The meta-data tag in your app's AndroidManifest.xml does not have the right value.  Expected 4030500 but found 0.  You must have the following declaration within the <application> element:     <meta-data Android:name="com.google.Android.gms.version" Android:value="@integer/google_play_services_version" />
11-01 11:38:13.507: E/AndroidRuntime(31297):    at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2077)
11-01 11:38:13.507: E/AndroidRuntime(31297):    at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2104)
11-01 11:38:13.507: E/AndroidRuntime(31297):    at Android.app.ActivityThread.access$600(ActivityThread.Java:134)
11-01 11:38:13.507: E/AndroidRuntime(31297):    at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1247)
11-01 11:38:13.507: E/AndroidRuntime(31297):    at Android.os.Handler.dispatchMessage(Handler.Java:99)
11-01 11:38:13.507: E/AndroidRuntime(31297):    at Android.os.Looper.loop(Looper.Java:154)
11-01 11:38:13.507: E/AndroidRuntime(31297):    at Android.app.ActivityThread.main(ActivityThread.Java:4624)
11-01 11:38:13.507: E/AndroidRuntime(31297):    at Java.lang.reflect.Method.invokeNative(Native Method)
11-01 11:38:13.507: E/AndroidRuntime(31297):    at Java.lang.reflect.Method.invoke(Method.Java:511)
11-01 11:38:13.507: E/AndroidRuntime(31297):    at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:965)
11-01 11:38:13.507: E/AndroidRuntime(31297):    at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:732)
11-01 11:38:13.507: E/AndroidRuntime(31297):    at dalvik.system.NativeStart.main(Native Method)
11-01 11:38:13.507: E/AndroidRuntime(31297): Caused by: Java.lang.IllegalStateException: The meta-data tag in your app's AndroidManifest.xml does not have the right value.  Expected 4030500 but found 0.  You must have the following declaration within the <application> element:     <meta-data Android:name="com.google.Android.gms.version" Android:value="@integer/google_play_services_version" />
11-01 11:38:13.507: E/AndroidRuntime(31297):    at com.google.Android.gms.common.GooglePlayServicesUtil.n(Unknown Source)
11-01 11:38:13.507: E/AndroidRuntime(31297):    at com.google.Android.gms.common.GooglePlayServicesUtil.isGooglePlayServicesAvailable(Unknown Source)
11-01 11:38:13.507: E/AndroidRuntime(31297):    at com.google.Android.gms.internal.de.connect(Unknown Source)
11-01 11:38:13.507: E/AndroidRuntime(31297):    at com.google.Android.gms.appstate.AppStateClient.connect(Unknown Source)
11-01 11:38:13.507: E/AndroidRuntime(31297):    at com.company.application.Android.aja.BeetleBattleAndroidActivity.loginGooglePlus(BeetleBattleAndroidActivity.Java:153)
11-01 11:38:13.507: E/AndroidRuntime(31297):    at com.company.application.Android.aja.BeetleBattleAndroidActivity.onCreate(BeetleBattleAndroidActivity.Java:143)
11-01 11:38:13.507: E/AndroidRuntime(31297):    at Android.app.Activity.performCreate(Activity.Java:4509)
11-01 11:38:13.507: E/AndroidRuntime(31297):    at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1050)
11-01 11:38:13.507: E/AndroidRuntime(31297):    at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2041)
11-01 11:38:13.507: E/AndroidRuntime(31297):    ... 11 more
70
Igor Kostenko

マニフェストに次を追加する必要があります。

<application>
    <meta-data 
       Android:name="com.google.Android.gms.version" 
       Android:value="@integer/google_play_services_version" />
    ...
</application>

編集:

この情報は、logcatエラーメッセージと Google Play開発者サービスのセットアップ(Brais Gabinに感謝)

154
Benoit

@ Benoit'aの答えには、私が追加の知識で答えている正確な解決策があります:

1。 Benoitが答えた1つの方法は、AndroidManifest.xmlのアプリケーションタグ内に以下を追加することです

<meta-data Android:name="com.google.Android.gms.version" Android:value="@integer/google_play_services_version" />

2。バージョンコードを直接追加できます。

<meta-data Android:name="com.google.Android.gms.version" Android:value="4030500" />

4030500は内部に保存されるバージョンコードです

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

好む

<integer name="google_play_services_version">4030500</integer>

結論:最新のGoogle Playサービスには、<meta-data .. />内のAndroidManifest.xmlを使用して言及されるバージョン名が必要です。

注:第一の方法を使用することを強くお勧めします

23
Tarsem Singh

あなたがその質問をしてから、いくつかのことが変わりました。 Google Play Services 7.0以降を使用している場合、Gradleはマニフェストを自動的にマージし、必要なメタデータを含めます。

引用 イアン湖

(...)Gradleを使用している場合、Google Play Services 7.0にはもう1つの時間節約機能もあります。

<meta-data Android:name="com.google.Android.gms.version"
           Android:value="@integer/google_play_services_version"/>

androidManifest.xmlのエントリ-手動で追加する必要はありません!ライブラリが必要なメタデータ、レシーバー、パーミッション、その他必要なものを追加できるシンプルなマニフェストマージの完璧な例-忘れてはならないことはもう1つ!

注:これは、完全なplay-servicesまたはplay-services-all-wear AARには適用されません。これは、グラニュラーAARのみに組み込まれています。

4
EyesClear

既存のプロジェクトをEclipseからAndroid St​​udioにインポートしました。EclipseプロジェクトではIntegers.xmlには次のようにハードコードされた値が含まれていました

<integer name="google_play_services_version">5089000</integer>

Android St​​udioによってビルドされているPlay Servicesの最新バージョンとバージョンの競合が発生します。 Integers.xmlからこの行を削除した後、それは私のために働き始めました。

2
Aqib Mumtaz

「アプリケーション」のAndroidManifest.xmlに以下の2つのメタデータタグを必ず追加してください。

<meta-data 
            Android:name="com.google.Android.maps.v2.API_KEY"
            Android:value="YOUR_API_KEY"/>
<meta-data 
            Android:name="com.google.Android.gms.version"
            Android:value="@integer/google_play_services_version"/>

このソリューションは私のために働いた。

2
vaaa

それでもエラーが発生する場合は、これを試してください。

それは私のために働いた

<meta-data
    tools:replace="Android:value"
    Android:name="com.google.Android.gms.version"
    Android:value="@integer/google_play_services_version" />
1
Ahmed Mujtaba

Googleサービスの付属コピーのres/valuesフォルダーに「version.xml」ファイルを作成し、コードを貼り付けました。

<?xml version="1.0" encoding="UTF-8"?>
<resources>
<integer name="google_play_services_version">4030500</integer>
</resources>

元のコピーはファイルを逃し、それは私の問題を解決しました

1
user3072712