android - samsung - Actualización de Google Play Services
instalar google play services (6)
Ayer salió API 19, así que actualicé SDK y otros (incluidos los servicios de Google Play) ahora este método:
private boolean isGooglePlayInstalled(){
int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if(status == ConnectionResult.SUCCESS){
return true;
}else{
((Dialog)GooglePlayServicesUtil.getErrorDialog(status, this,10)).show();
}
return false;
}
Tira a la línea
int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
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" />
¿Cómo arreglar eso? No tenía elemento
"com.google.android.gms.version" en manifiesto antes y funcionó.
Este es mi manifiesto:
<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>
Comparación de contenido del paquete
El proyecto lib de "google_play_services_froyo" contiene estos paquetes com.google.android.gms
:
- appstate
- auth
- común
- dinámica
- juegos
- gcm
- interno
- ubicación
- mapas
- panorama
- más
Por otro lado, el nuevo (rev.13) proyecto "google_play_servicios" lib tiene algunos paquetes adicionales dentro de com.google.android.gms
:
- anuncios
- appstate
- auth
- común
- dinámica
- juegos
- gcm
- interno
- ubicación
- mapas
- panorama
- más
- billetera
Además, este paquete se encuentra en el nuevo (rev. 13) "google_play_services": com.google.ads
!
Comparación AndroidManifext.xml
El antiguo (rev. 12) "google_play_services" tení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="3265130"
android:versionName="3.2.65 (834000-30)" >
<uses-sdk android:minSdkVersion="8"/>
</manifest>
El proyecto recientemente lanzado "google_play_services_froyo" lib tiene:
<?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>
Conclusión
El "google_play_services_froyo" es funcionalmente el mismo que el anterior (rev. 12) "google_play_services" del proyecto lib, así que si solo quieres mantener tu aplicación compatible y no te importan las nuevas API, simplemente importa el "google_play_services_froyo" en tu proyecto y estás listo para ir.
Por otro lado, si desea utilizar el nuevo (rev.13) proyecto lib "google_play_services", una vez que lo importe, debe agregarlo al manifiesto de sus aplicaciones:
<application
...
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
</application>
Espero que esto haya ayudado :)
Eso me pasó ayer. Solo necesitaba agregar esto en el manifiesto:
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
Esto funcionó para mí:
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
Coloque esto al final de su manifiesto, después de la etiqueta de metadatos de la clave Map API. Ya que verifica la disponibilidad de GPlayServices en su método onCreate, como por ejemplo:
// 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);
}
... luego, una vez que haga clic en el cuadro de diálogo para actualizar GPlayServices, será llevado a GPlayStore. Por lo general, desinstalo desde el menú GPlayStore, entonces la opción de actualización estará disponible. Después de eso debería de funcionar.
Me enfrenté a este error porque hice referencia a la copia original del directorio SDK. Asegúrese de copiar primero la biblioteca al espacio de trabajo de Android y solo hacer referencia a ella. En Eclipse puedes hacerlo marcando "Copiar proyectos en el espacio de trabajo" mientras importas el proyecto.
Resolví mi problema de lo mismo con
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
tienes que agregar la siguiente línea en el archivo de manifiesto.
Espero que funcione.
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />