32 votes

Méta-données d'erreur des services Google Play v13 dans AndroidManifest

Mon application utilise les services Google Play pour la localisation. Elle utilise également Google Maps. Jusqu'à aujourd'hui, elle fonctionnait bien mais après la mise à jour d'Eclipse et l'installation de Google Play Services v13, elle ne fonctionne plus. Aujourd'hui, j'ai effectué plusieurs mises à jour. - Android SDK Tools mis à jour en 22.3 - Android SDK Platform Tools mis à jour à 19 - Android SDK Build-tools mis à jour à 19 - Google Play Services mis à jour en 13 J'ai également mis à jour ADT

Lorsque je lance l'application, je reçois ce message d'erreur :

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

J'ai travaillé plusieurs fois avec Google Play Services et cette application a également fonctionné correctement jusqu'à présent. Je n'ai jamais inclus de méta-données dans le manifeste.

J'ai essayé de résoudre le problème en incluant la balise meta-data dans mon manifeste d'application mais cela ne fonctionne pas. Actuellement, mon manifeste d'application ressemble à ceci (c'est le même que celui que le manifeste incluait dans mon application quand elle fonctionnait).

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myapp.app"
android:versionCode="2"
android:versionName="1.0.1" >

<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<permission
android:name="com.myapp.app.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />

<uses-permission android:name="com.myapp.app.permission.MAPS_RECEIVE" />

<supports-screens android:requiresSmallestWidthDp="320" />
<supports-screens android:compatibleWidthLimitDp="394" />

<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="18" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/CustomizedTheme" >

<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="thecode" />

<activity
android:name="com.myapp.app.ActivityMain"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
    </activity>
</application>

</manifest>

Je me demande si ce problème est dû au manifeste google-play-services ?

C'est le manifeste que j'ai trouvé :

<?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>

Pour utiliser les services Google Play, j'ai suivi les instructions données par Google, comme par le passé et jusqu'à présent, je n'ai trouvé aucun problème.

0 votes

71voto

meh Points 6115

El Guide de démarrage de Google Maps dice:

Ajoutez la version des services Google Play au manifeste de votre application.

Modifiez le fichier AndroidManifest.xml de votre application, et ajoutez la déclaration suivante dans l'élément. Cet élément incorpore la version des services Google Play avec laquelle l'application a été compilée.

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

1 votes

J'ai essayé cette solution mais bien que l'application ne plante pas, elle ne fonctionne pas car la dernière version de Google Play disponible est la révision 12. Il semble qu'elle ne soit pas encore prête. J'ai utilisé le service Google Play pour Froyo et cela fonctionne. Pour l'instant, je vais utiliser ce service. En tout cas, merci beaucoup pour votre aide.

0 votes

Oui, il semble qu'ils aient ajouté quelque chose de nouveau, je l'ajouterai aussi après avoir mis à jour la bibliothèque des services de jeu.

1 votes

Dans l'erreur Logcat, vous pouvez voir quel numéro vous devez mettre dans le champ de valeur de ces métadonnées, et ce n'est PAS le numéro de révision (le dernier est le 13), vérifiez-le.

7voto

Si vous utilisez le service google play révision 13 alors vous devez mettre cette balise meta :

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

mais il ne fonctionne pas les api de niveau inférieur comme Android 2.*. pour résoudre ce problème, installez d'abord le service google play pour frayo révision 12 et utilisez-le. il fonctionne sur tous les niveaux d'api.

1voto

cmcromance Points 668

@Javier Avez-vous vu le post sur "Android developers blog" ? Ils ont mis à jour l'application google play service la semaine dernière. Donc, le code de la version est adapté à la bibliothèque maintenant. Cela fonctionne bien. Nous pouvons utiliser la dernière version de "google-play-service-lib" maintenant. Je l'ai testé et cela fonctionne ! Voir ce https://Android-developers.googleblog.com/2014/01/google-play-services-41.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X