java.lang.NoSuchMethodError: Keine statische Methode isAtLeastR () Z.


8

Meine App lief einwandfrei, aber plötzlich bekam ich diesen Fehler

java.lang.NoSuchMethodError: Keine statische Methode isAtLeastR () Z in der Klasse Landroidx / core / os / BuildCompat; oder seine Superklassen (Deklaration von 'androidx.core.os.BuildCompat' erscheint in /data/app/com.app.goflatmates-RZKwS2h6hav==/base.apk) unter com.google.android.gms.common.util. PlatformVersion.isAtLeastR (com.google.android.gms: Play-Services-Keller @@ 17.2.0: 21) unter com.google.android.gms.common.api.GoogleApi.zaa (com.google.android.gms: play-services-base @@ 17.2.0: 128) unter com.google.android.gms.common.api.GoogleApi. (com.google.android.gms: play-services-base @@ 17.2.0: 23) unter com.google.android.gms.common.api.GoogleApi. (com.google.android.gms: play-services-base @@ 17.2.0: 54) unter com.google.android.gms.auth.api. signin.GoogleSignInClient. (Unbekannte Quelle: 3) unter com.google.android.gms.auth.api.signin.

Das Problem kommt in dieser Zeile

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

mGoogleSignInClient = GoogleSignIn.getClient(this, gso);

Irgendwie androidx.core.os.BuildCompatstimmen die von Kompilieren und Ausführen nicht überein.
Graubart

Antworten:


11

Ich hatte dieses Problem auch mit React Native. Ich habe es behoben, indem ich dies in meiner App / build.gradle eingestellt habe:

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

Dies liegt an einer bahnbrechenden Änderung, die vor einigen Tagen von der Google Play-Services-Basisbibliothek eingeführt wurde. Wenn Sie es verwenden implementation 'com.google.android.gms:play-services-base:+', wird die neueste Version der Bibliothek heruntergeladen, wodurch dieser Fehler in Ihre App eingeführt wird. Ich hoffe, das hilft.


Es ist merkwürdig, dass dieses Problem nur unter Android 10 auftritt. Ältere Versionen funktionierten einwandfrei. Der Wechsel zur spezifischen Version war jedoch für alle Versionen ausreichend.
Gabriel Guarnieri Cardoso

3
Ja. Sie haben auch nicht wirklich dokumentiert, was sie geändert haben, sodass Sie es nicht wissen, bis Ihre App einen Fehler auslöst.
Aditya Gune

1
Ja Mann. Du hast meinen Tag unter Quarantäne gerettet
Pavel Nikolaev

Es gibt ein Problem mit Version 17.2.0. Ein Downgrade auf v17.1.0 hat mir den Tag gerettet. Das neue Update v17.2.1 scheint ebenfalls zu funktionieren
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 ist eine endgültige Version und diese Methode ist nicht mehr erforderlich. Es wird in einer zukünftigen Version der Support-Bibliothek entfernt.

Bitte Downgrade-Version

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

2

Der Fehler war in com.google.android.gms:play-services-base:17.2.0Die vorherigen Antworten zum Downgrade auf 17.1.0 waren korrekt, aber Google hat das Problem jetzt behoben, sodass Sie ein Upgrade auf 17.2.1 durchführen können und es auch gut funktioniert.

Diese drei wurden zusammen aktualisiert, also stoßen Sie sie alle an, wenn Sie sie verwenden:

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

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


0

Ich habe es behoben, indem ich dies in meiner App / build.gradle eingestellt habe

dependencies {
    // ...
    configurations.all {
        resolutionStrategy.force 'com.google.android.gms:play-services-base:17.1.0'
    }
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.