web-dev-qa-db-fra.com

Mise à jour des services Google Play

Hier, l’API 19 est sortie et j’ai donc mis à niveau le SDK et d’autres (y compris les services Google Play) Maintenant cette méthode:

private boolean isGooglePlayInstalled(){
    int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
    if(status == ConnectionResult.SUCCESS){
        return true;
    }else{
        ((Dialog)GooglePlayServicesUtil.getErrorDialog(status, this,10)).show();
    }
    return false;
}

Jette à la ligne 

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

Comment résoudre ce problème? Je n'ai pas eu d'élément 

<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.sabatsoft.driveit"
    Android:versionCode="1"
    Android:versionName="1.0" >

    <uses-sdk
        Android:minSdkVersion="16"
        Android:targetSdkVersion="19" />

    <uses-permission Android:name="Android.permission.INTERNET" />
    <uses-permission Android:name="Android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission Android:name="Android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission Android:name="Android.permission.READ_PHONE_STATE" />
    <uses-permission Android:name="Android.permission.WAKE_LOCK" />
    <uses-permission Android:name="Android.permission.WRITE_SETTINGS" />
    <uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission Android:name="com.google.Android.providers.gsf.permission.READ_GSERVICES" />

    <application
        Android:allowBackup="true"
        Android:icon="@drawable/ic_launcher"
        Android:label="@string/app_name" >
        <activity
            Android:name="com.sabatsoft.driveit.activity.Start"
            Android:label="@string/app_name"
            Android:screenOrientation="landscape"
            Android:theme="@Android:style/Theme.NoTitleBar" >
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN" />

                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <!-- other activities -->

        <meta-data
            Android:name="com.google.Android.maps.v2.API_KEY"
            Android:value="AIza*********************************1MZI" />
    </application>

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

</manifest>
41
SpeedEX505

Cela a fonctionné pour moi:

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

Placez-le à la fin de votre manifeste, après votre balise de métadonnées de clé de l’API Map. Puisque vous vérifiez la disponibilité de GPlayServices dans votre méthode onCreate, par exemple:

// Check status of Google Play Services
int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);

// Check Google Play Service Available
try {
    if (status != ConnectionResult.SUCCESS) {
        GooglePlayServicesUtil.getErrorDialog(status, this, RQS_GooglePlayServices).show();
    }
} catch (Exception e) {
    Log.e("Error: GooglePlayServiceUtil: ", "" + e);
}

... puis, une fois que vous avez cliqué sur la boîte de dialogue pour mettre à jour GPlayServices, vous serez amené au GPlayStore. Habituellement, je désinstalle à partir du menu GPlayStore, l'option de mise à jour sera disponible. Il devrait marcher après ça.

62
BostonGeorge

Comparaison du contenu de l'emballage

Le projet lib "google_play_services_froyo" contient les packages com.google.Android.gms suivants:

  • appstate
  • auth
  • commun
  • dynamique
  • jeux
  • gcm
  • interne
  • emplacement
  • plans
  • panorama
  • plus

D'autre part, le nouveau projet lib (rév. 13) "google_play_services" contient quelques additional packages au sein de com.google.Android.gms:

  • les publicités
  • appstate
  • auth
  • commun
  • dynamique
  • jeux
  • gcm
  • interne
  • emplacement
  • plans
  • panorama
  • plus
  • portefeuille

De plus, ce paquet se trouve dans le nouveau (rév. 13) "google_play_services": com.google.ads!

Comparaison AndroidManifext.xml

L'ancien (rév. 12) "google_play_services" avait:

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

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

</manifest> 

Le nouveau projet lib "google_play_services_froyo" lib a:

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

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

</manifest>

Conclusion

"Google_play_services_froyo" est fonctionnellement identique à l'ancien projet lib "google_play_services" (rév. 12). Si vous souhaitez simplement conserver votre application compatible et ne vous souciez pas des nouvelles API, importez simplement le "google_play_services_froyo" dans votre projet et vous êtes prêt à partir.

D'autre part, si vous souhaitez utiliser le nouveau projet lib "google_play_services" (rév. 13), vous devez l'ajouter à votre manifeste d'applications une fois que vous l'avez importé:

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

J'espère que cela a aidé :)

21
Saran

Cela m'est arrivé hier. J'avais juste besoin d'ajouter ceci dans le manifeste:

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

vous devez ajouter la ligne suivante dans le fichier manifeste.
J'espère que cela fonctionnera.

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

J'ai résolu le même problème avec 

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

J'ai rencontré cette erreur parce que j'ai référencé la copie d'origine à partir du répertoire SDK. Assurez-vous d’abord de copier la bibliothèque dans l’espace de travail Android et de ne la référencer que. Dans Eclipse, vous pouvez le faire en cochant "Copier les projets dans un espace de travail" lors de l'importation du projet. 

0
Gary Wong