java.lang.NoSuchMethodError: ningún método estático isAtLeastR () Z

8

Mi aplicación funcionaba bien, pero de repente comencé a recibir este error

java.lang.NoSuchMethodError: ningún método estático isAtLeastR () Z en la clase Landroidx / core / os / BuildCompat; o sus superclases (la declaración de 'androidx.core.os.BuildCompat' aparece en /data/app/com.app.goflatmates-RZKwS2h6hav==/base.apk) en com.google.android.gms.common.util. PlatformVersion.isAtLeastR (com.google.android.gms: play-services-basement @@ 17.2.0: 21) en com.google.android.gms.common.api.GoogleApi.zaa (com.google.android.gms: play-services-base @@ 17.2.0: 128) en com.google.android.gms.common.api.GoogleApi. (com.google.android.gms: play-services-base @@ 17.2.0: 23) en com.google.android.gms.common.api.GoogleApi. (com.google.android.gms: play-services-base @@ 17.2.0: 54) en com.google.android.gms.auth.api. signin.GoogleSignInClient. (Fuente desconocida: 3) en com.google.android.gms.auth.api.signin.

El problema viene en esta línea.

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestEmail()
                .build(); 

mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
Avin Kamboj
fuente
De alguna manera, la androidx.core.os.BuildCompatcompilación y ejecución no están de acuerdo.
barba gris

Respuestas:

11

También tuve este problema con React Native. Lo arreglé configurando esto en mi app / build.gradle:

dependencies {
    // ...
    implementation 'com.google.android.gms:play-services-base:17.1.0'
    // ...
}

Se debe a un cambio radical introducido por la biblioteca de base de servicios de Google Play hace un par de días. Si lo usa implementation 'com.google.android.gms:play-services-base:+', descargará la última versión de la biblioteca e introducirá ese error en su aplicación. Espero que ayude.

Aditya Gune
fuente
Es curioso que este problema solo ocurra en Android 10. Las versiones anteriores funcionaban bien. Pero cambiar a la versión específica hizo el truco para todas las versiones.
Gabriel Guarnieri Cardoso
3
Si. Tampoco documentaron realmente lo que cambiaron, por lo que no lo sabrá hasta que su aplicación arroje un error.
Aditya Gune
1
Si hombre. U salvó mi día en cuarentena
Pavel Nikolaev
Hay algún problema con la versión 17.2.0. La degradación a v17.1.0 me salvó el día. La nueva actualización v17.2.1 también parece funcionar
Sarthak Mishra
3
/**
     * Checks if the device is running on a pre-release version of Android R or newer.
     * <p>
     * <strong>Note:</strong> This method will return {@code false} on devices running release
     * versions of Android. When Android R is finalized for release, this method will be deprecated
     * and all calls should be replaced with {@code Build.VERSION.SDK_INT >= Build.VERSION_CODES.R}.
     *
     * @return {@code true} if R APIs are available for use, {@code false} otherwise
     */
    public static boolean isAtLeastR() {
        return VERSION.CODENAME.length() == 1 && VERSION.CODENAME.charAt(0) >= 'R'
                && VERSION.CODENAME.charAt(0) <= 'Z';
    }

Android Q es una versión finalizada y este método ya no es necesario. Se eliminará en una versión futura de la Biblioteca de soporte.

Versión downgrade amable

 implementation 'com.google.android.gms:play-services-base:17.1.0'
 implementation 'com.google.android.gms:play-services-base:17.0.0' //OR
IntelliJ Amiya
fuente
2

El error estaba en com.google.android.gms:play-services-base:17.2.0Las respuestas anteriores que decían bajar a 17.1.0 eran correctas, pero Google ha solucionado el problema ahora, por lo que puede actualizar a 17.2.1 y también funciona bien.

Estos tres se actualizaron juntos, así que agrúpelos si los está usando:

com.google.android.gms:play-services-base:17.2.1
com.google.android.gms:play-services-basement:17.2.1
com.google.android.gms:play-services-tasks:17.0.2

Fuente: https://developers.google.com/android/guides/releases

Nerrolken
fuente
0

Lo arreglé configurando esto en mi aplicación / build.gradle

dependencies {
    // ...
    configurations.all {
        resolutionStrategy.force 'com.google.android.gms:play-services-base:17.1.0'
    }
}
Aplicación Bowyer
fuente