Wie kann ich diesen Fehler beheben?
Auslöser: java.lang.illegalargumentexception 11-01 11: 08: 12.845: E / AndroidRuntime (28885): Auslöser: java.lang.IllegalStateException: Das Metadaten-Tag in der AndroidManifest.xml Ihrer App hat nicht den richtigen Wert . Erwartet 4030500, aber gefunden 0. Sie müssen die folgende Deklaration innerhalb des Elements haben:
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();
}
Vollständiges Fehlerprotokoll:
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
android
google-play-services
Igor Kostenko
quelle
quelle
Antworten:
Sie müssen Folgendes in Ihr Manifest aufnehmen:
<application> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> ... </application>
BEARBEITEN:
Diese Informationen finden Sie in der Logcat-Fehlermeldung sowie unter Einrichten der Google Play-Dienste (Danke Brais Gabin).
quelle
@ Benoit'a Antwort hat genaue Lösung Ich antworte mit zusätzlichem Wissen:
1. Eine Möglichkeit, wie Benoit antwortete, ist das Hinzufügen des folgenden Anwendungs-Tags von
AndroidManifest.xml
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
2. Wir können den Versionscode direkt wie hinzufügen
<meta-data android:name="com.google.android.gms.version" android:value="4030500" />
4030500 ist der Versionscode, der im Inneren gespeichert ist
google-play-services_lib> res> values> version.xml
Mögen
<integer name="google_play_services_version">4030500</integer>
Fazit: Für die neuesten Google Play-Dienste ist ein Versionsname erforderlich, der im
<meta-data .. />
Inneren erwähnt werden sollAndroidManifest.xml
Hinweis: Ich würde dringend empfehlen, den 1. Weg zu verwenden
quelle
google-play-services_lib>res>values>version.xml
Ein paar Dinge haben sich geändert, seit Sie diese Frage gestellt haben. Wenn Sie Google Play Services 7.0 oder höher verwenden, führt Gradle Manifeste automatisch zusammen und enthält die erforderlichen Metadaten für Sie.
Unter Berufung auf Ian Lake :
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
quelle
Ich habe eine Datei "version.xml" im Ordner res / values der enthaltenen Kopie der Google-Dienste erstellt und den Code eingefügt:
<?xml version="1.0" encoding="UTF-8"?> <resources> <integer name="google_play_services_version">4030500</integer> </resources>
Die Originalkopie hat die Datei übersehen und mein Problem gelöst
quelle
Stellen Sie einfach sicher, dass Sie die folgenden zwei Metadaten-Tags zur AndroidManifest.xml Ihrer Anwendung hinzufügen
<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"/>
Diese Lösung hat bei mir funktioniert.
quelle
Ich habe mein vorhandenes Projekt von Eclipse nach Android Studio importiert. In Eclipse
Integers.xml
enthielt das Projekt den folgenden fest codierten Wert<integer name="google_play_services_version">5089000</integer>
Dies führt zu Versionskonflikten mit der neuesten Version von Play Services, die von Android Studio erstellt wird. Nachdem
Integers.xml
ich diese Zeile entfernt hatte , fing sie an, für mich zu arbeiten.quelle
Wenn Sie immer noch einen Fehler haben, versuchen Sie diesen.
es hat bei mir funktioniert
<meta-data tools:replace="android:value" android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
quelle
Fügen Sie
<meta-data>
nach dem Schließen -<application>
Tag. Dies löste mein Problemquelle