java.lang.NoSuchMethodError: nenhum método estático isAtLeastR () Z

8

Meu aplicativo estava funcionando bem, mas de repente comecei a receber esse erro

java.lang.NoSuchMethodError: nenhum método estático isAtLeastR () Z na classe Landroidx / core / os / BuildCompat; ou suas super classes (a declaração de 'androidx.core.os.BuildCompat' aparece em /data/app/com.app.goflatmates-RZKwS2h6hav==/base.apk) em com.google.android.gms.common.util. PlatformVersion.isAtLeastR (com.google.android.gms: play-services-basement @@ 17.2.0: 21) em com.google.android.gms.common.api.GoogleApi.zaa (com.google.android.gms: play-services-base @@ 17.2.0: 128) em com.google.android.gms.common.api.GoogleApi. (com.google.android.gms: play-services-base @@ 17.2.0: 23) em com.google.android.gms.common.api.GoogleApi. (com.google.android.gms: play-services-base @@ 17.2.0: 54) em com.google.android.gms.auth.api. signin.GoogleSignInClient. (Fonte desconhecida: 3) em com.google.android.gms.auth.api.signin.

O problema está chegando nesta linha

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

mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
Avin Kamboj
fonte
De alguma forma, o androidx.core.os.BuildCompatde compilação e execução discordam.
greybeard 23/03

Respostas:

11

Eu também tive esse problema com o React Native. Corrigi-o definindo isso no meu app / build.gradle:

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

É por causa de uma mudança radical introduzida pela biblioteca do Google Play-Services-Base alguns dias atrás. Se você o usar implementation 'com.google.android.gms:play-services-base:+', fará o download da versão mais recente da biblioteca, introduzindo esse bug no seu aplicativo. Espero que ajude.

Aditya Gune
fonte
É curioso que esse problema ocorra no Android 10. As versões anteriores estavam funcionando bem. Mas mudar para a versão específica fez o truque para todas as versões.
Gabriel Guarnieri Cardoso
3
Sim. Eles também não documentaram realmente o que foram alterados, para que você não saiba até que seu aplicativo gere um erro.
Aditya Gune 24/03
1
Sim cara. U salvou meu dia em quarentena
Pavel Nikolaev
Existe algum problema com a v 17.2.0. A atualização para a v17.1.0 salvou meu dia. A nova atualização v17.2.1 também 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';
    }

O Android Q é uma versão finalizada e esse método não é mais necessário. Ele será removido em uma versão futura da Biblioteca de Suporte.

Versão gentilmente rebaixada

 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
fonte
2

O bug estava em com.google.android.gms:play-services-base:17.2.0As respostas anteriores dizendo que fazer o downgrade para 17.1.0 estavam corretas, mas o Google corrigiu o problema agora, então você pode atualizar para o 17.2.1 e também funciona bem.

Esses três foram atualizados juntos, então aprimore todos eles se você estiver 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

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

Nerrolken
fonte
0

Corrigi-o definindo isso no meu app / build.gradle

dependencies {
    // ...
    configurations.all {
        resolutionStrategy.force 'com.google.android.gms:play-services-base:17.1.0'
    }
}
Bowyer App
fonte