java - servicios - Después de la actualización del servicio Google Play a la versión 13, recibí un error
servicios de google play sigue sin funcionar (7)
¿Cómo puedo resolver este error?
Causado por: java.lang.illegalargumentexception 11-01 11: 08: 12.845: E / AndroidRuntime (28885): Causado por: java.lang.IllegalStateException: la etiqueta de metadatos en AndroidManifest.xml de su aplicación no tiene el valor correcto . Se esperaba 4030500 pero se encontró 0. Debe tener la siguiente declaración dentro del elemento:
google-play-services_lib Manifiesto:
<?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();
}
Registro de error completo:
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
@ Benoit''a respuesta tiene solución exacta estoy respondiendo con conocimiento adicional:
1. Una de las formas en que Benoit respondió es agregar la siguiente etiqueta de aplicación de AndroidManifest.xml
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
2. podemos agregar directamente el código de la versión como
<meta-data android:name="com.google.android.gms.version" android:value="4030500" />
4030500 es un código de versión que se almacena dentro
google-play-services_lib> res> values> version.xml
Me gusta
<integer name="google_play_services_version">4030500</integer>
Conclusión: los últimos servicios de google play requieren un nombre de versión, que se debe mencionar utilizando <meta-data .. />
dentro de AndroidManifest.xml
Nota: Recomiendo encarecidamente usar 1st way
Agregue <meta-data>
después de cerrar la etiqueta <application>
. Esto resolvió mi problema
Algunas cosas cambiaron desde que hizo esa pregunta. Si está utilizando Google Play Services 7.0 o posterior, Gradle fusionará automáticamente manifiestos e incluirá los metadatos necesarios para usted.
Citando a Ian Lake :
(...) Google Play Services 7.0 también tiene otra característica de ahorro de tiempo si está utilizando Gradle: incluye automáticamente el
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
entrada en su AndroidManifest.xml por usted, ¡sin necesidad de agregarlo manualmente! Ejemplo perfecto de simple combinación de Manifiesto donde las bibliotecas pueden agregar los metadatos, receptores, permisos y cualquier otra cosa que necesiten: ¡una cosa menos que olvidar!
Nota: esto no se aplica a los AAR completos de servicios de juego o de juegos de juegos: solo los AARs granulares tienen esto incorporado.
Creé un archivo "version.xml" en la carpeta res / values de la copia incluida de los servicios de google y pegué el código:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<integer name="google_play_services_version">4030500</integer>
</resources>
la copia original se perdió el archivo y solucionó mi problema
Importé mi proyecto existente de Eclipse a Android Studio. En el proyecto de Eclipse, Integers.xml
contenía el valor codificado como sigue.
<integer name="google_play_services_version">5089000</integer>
causando conflicto de versión con la última versión de Play Services que está siendo desarrollado por Android Studio. después de eliminar esta línea de Integers.xml
, comenzó a funcionar para mí.
Necesita agregar lo siguiente en su manifiesto:
<application>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
...
</application>
EDITAR:
Esta información se puede encontrar en el mensaje de error de logcat y en la configuración de los servicios de Google Play (gracias a Brais Gabin)
Solo asegúrese de agregar las dos etiquetas de metadatos siguientes a ''Android''.
<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"/>
Esta solución funcionó para mí.