android - services - servicios de google play continua fallando
Servicios de Google Play desactualizados. Requiere 11011000 pero encontrado 10289574 (8)
He estado luchando con este problema alrededor de una semana. He estado buscando temas similares sobre esto pero aún no puedo resolver mi problema.
El Prolem es que cuando intento ejecutar mi programa en Polar m600 wear o wear emulator (Android V 7.1.1 y API25) me están dando este mensaje "Servicios de Google Play desactualizados. Requiere 11011000 pero se encontró 10289574" .
He seguido la parte "Obtención de la última ubicación conocida" en el sitio para desarrolladores de Android. (Enlace para el sitio https://developer.android.com/training/location/retrieve-current.html#play-services )
Aquí está mi código de Mainactivity que estoy usando
public class MainActivity extends Activity {
private FusedLocationProviderClient mFusedLocationClient;
public Location mLastLocation;
private TextView mTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);
stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {
@Override
public void onLayoutInflated(WatchViewStub stub) {
mTextView = (TextView) stub.findViewById(R.id.text);
}
});
mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
return;
}
mFusedLocationClient.getLastLocation()
.addOnSuccessListener(this, new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
mLastLocation = location;
Log.d("Location is:",""+mLastLocation);
if (location != null) {
}
}
});
}
}
Aquí está mi manifiesto.xml`
<uses-feature android:name="android.hardware.type.watch" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@android:style/Theme.DeviceDefault">
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity
android:name=".MainActivity"
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>
Y por último, pero no menos importante, mi build.gradle
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "ims.fhj.at.testnavigators"
minSdkVersion 21
targetSdkVersion 25
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro''
}
}
}
dependencies {
compile fileTree(dir: ''libs'', include: [''*.jar''])
compile ''com.google.android.support:wearable:2.0.3''
compile ''com.google.android.gms:play-services-wearable:11.0.1''
compile ''com.google.android.gms:play-services:11.0.1''}
A veces, este error puede ocurrir cuando pasa el valor de id de cliente web incorrecto
val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(**web-client-id here**)
.requestEmail()
.build()
Use el valor en la sección de id del cliente OAuth indicada Cliente web (creado automáticamente por el servicio de google
Como String escribió, los Servicios de Play no se actualizan en el dispositivo. Desafortunadamente, en un mundo de WearOS, es posible que los Servicios de Play estén actualizados, pero simplemente no están disponibles en los wearables. En ese caso, puede utilizar los siguientes métodos para reaccionar:
GoogleApiAvailability apiAvailability = GoogleApiAvailability.getInstance();
int result = apiAvailability.isGooglePlayServicesAvailable(this);
if (result != ConnectionResult.SUCCESS) {
...
} else {
apiAvailability.getErrorDialog(this, result, REQUEST_CODE,this).show();
}
Cree el emulador Nexus 5x con la versión de Android O - api 26 - x86 o la versión de Android Nougat - api 24 - x86
Luego haga clic en los 3 puntos en el emulador y esto abrirá la ventana ampliada, luego haga clic en Google Play + actualizar. Y eso actualizará los Servicios de Google Play a la última actualización que es 11.0.55 hoy.
Debe actualizar los servicios y las API de Google Play para la imagen que usa su emulador. Mira esta respuesta, funcionó para mí (Android Studio 3.1): https://.com/a/49751932/2292056
El problema aquí es la falta de coincidencia de los servicios de Google Play (versión) en el emulador y el archivo gradle.
Se puede resolver de dos maneras:
-
Elimine la falta de coincidencia degradando la versión de los servicios de Google Play (versión) en el archivo
gradle
a los Servicios de Google Play (versión) del emulador. -
Actualice los servicios de Google Play en el emulador.
Este ha sido un problema continuo con Wear durante años (ver, por ejemplo, Android Wear Google Play Services ).
La mejor solución parece ser no usar la última versión de Play Services. Una opción es encontrar una versión mínima que parezca cubrir sus dispositivos de producción específicos; en su caso, esto suena como algo en el rango de 10.2. Alternativamente, elija la versión más baja que incluya toda la funcionalidad que necesita (personalmente estoy usando 9.8.0).
Como referencia, aquí está el historial de versiones de Play Services: https://developers.google.com/android/guides/releases
Mi solución es súper extraña: Ir a Configuración -> Aplicaciones -> Aplicaciones del sistema -> Google Play Store Mi versión era 10xxxxx, lo cual es extraño porque mi reloj se actualizó en el arranque. Entonces, hice clic en Eliminar actualización y la versión cambió a 11xxxxxx.
Tienes que degradar la API en un archivo gradle portátil.
El problema es que su dispositivo no tiene una aplicación actualizada de Google Play Services.
Para arreglarlo cambie a esto:
compile ''com.google.android.gms:play-services-wearable:10.0.0''
compile ''com.google.android.gms:play-services:10.0.0''