After Google Play Service update to version 13 I got an error

JavaAndroidGoogle Play-Services

Java Problem Overview


How can I resolve this error?

> Caused by: java.lang.illegalargumentexception > 11-01 11:08:12.845: E/AndroidRuntime(28885): 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 element:


google-play-services_lib Manifest:

<?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();
}


Full error log:

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

Java Solutions


Solution 1 - Java

You need to add the following in your manifest:

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

EDIT:

This information can be found in the logcat error msg as well as on Setting Up Google Play Services (Thanks Brais Gabin)

Solution 2 - Java

@Benoit'a answer has exact solution i am answering with additional knowledge:

1. one way as Benoit answered is add following inside application tag of AndroidManifest.xml

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

2. we can directly add the version code like

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

4030500 is version code which is stored inside

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

Like

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

Conclusion: Latest google play services requires a version name, which is to be mentioned using <meta-data .. /> inside AndroidManifest.xml

Note: I would strongly recommend to use 1st way

Solution 3 - Java

A few things changed since you asked that question. If you're using Google Play services 7.0 or newer, Gradle will automatically merge manifests and include the required meta-data for you.

Citing Ian Lake: > (...) Google Play services > 7.0 also has one other time saving feature if you're using Gradle: it automatically includes the

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

> entry in your AndroidManifest.xml for you - no need to manually add > it! Perfect example of simple Manifest merging where libraries can > add required meta-data, receivers, permissions, and anything else they > made need - one less thing to forget! > > Note: this does not apply to the full play-services or > play-services-all-wear AARs - only the granular AARs have this built > in.

Solution 4 - Java

I did create a file "version.xml" in the res/values folder of the included copy of google services and pasted the code:

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

the original copy missed the file and it did solve my problem

Solution 5 - Java

Just make sure to add the below two meta-data tags to 'your' application's AndroidManifest.xml

<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"/>

This solution worked for me.

Solution 6 - Java

I imported my existing project from Eclipse to Android Studio, In Eclipse project Integers.xml was containing hardcoded value as following

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

causing version conflict with latest version of Play Services being built by Android Studio. after removing this line from Integers.xml it started working for me.

Solution 7 - Java

If you still having error try this one.

it worked for me

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

Solution 8 - Java

Add <meta-data> after closing <application> tag. This solved my problem

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionIgor KostenkoView Question on Stackoverflow
Solution 1 - JavaBenoitView Answer on Stackoverflow
Solution 2 - JavaTarsem SinghView Answer on Stackoverflow
Solution 3 - JavaEyesClearView Answer on Stackoverflow
Solution 4 - Javauser3072712View Answer on Stackoverflow
Solution 5 - JavavaaaView Answer on Stackoverflow
Solution 6 - JavaAqib MumtazView Answer on Stackoverflow
Solution 7 - JavaAhmed MujtabaView Answer on Stackoverflow
Solution 8 - JavaAssasin_ngView Answer on Stackoverflow