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>
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.
Le projet lib "google_play_services_froyo" contient les packages com.google.Android.gms
suivants:
D'autre part, le nouveau projet lib (rév. 13) "google_play_services" contient quelques additional packages au sein de com.google.Android.gms
:
De plus, ce paquet se trouve dans le nouveau (rév. 13) "google_play_services": com.google.ads
!
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>
"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é :)
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" />
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" />
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" />
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.