java .lang.NoSuchMethodError: Нет данных c метод isAtLeastR () Z - PullRequest
8 голосов
/ 23 марта 2020

Мое приложение работало нормально, но внезапно я начал получать эту ошибку

java .lang.NoSuchMethodError: Нет данных c Метод isAtLeastR () Z в классе Landroidx / core / os / BuildCompat; или его суперклассы (объявление 'androidx.core.os.BuildCompat' отображается в /data/app/com.app.goflatmates-RZKwS2h6hav==/base.apk) на странице com.google. android .gms.common. util.PlatformVersion.isAtLeastR (com.google. android .gms: play-services-basement @@ 17.2.0: 21) на com.google. android .gms.common.api.GoogleApi.zaa (com. google. android .gms: play-services-base @@ 17.2.0: 128) на com.google. android .gms.common.api.GoogleApi. (com.google. android .gms: play). -services-base @@ 17.2.0: 23) на com.google. android .gms.common.api.GoogleApi. (com.google. android .gms: play-services-base @@ 17.2.0 : 54) на com.google. android .gms.auth.api.signin.GoogleSignInClient. (Неизвестный источник: 3) на com.google. android .gms.auth.api.signin.GoogleSignIn.getClient (неизвестно) Источник: 3

Проблема в этой строке

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

mGoogleSignInClient = GoogleSignIn.getClient(this, gso);

Ответы [ 4 ]

11 голосов
/ 24 марта 2020

У меня тоже была эта проблема с React Native. Я исправил это, установив это в своем app / build.gradle:

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

Это из-за серьезного изменения, внесенного библиотекой Google play-services-base пару дней go. Если вы используете implementation 'com.google.android.gms:play-services-base:+', он загрузит последнюю версию библиотеки, введя эту ошибку в ваше приложение. Надеюсь, это поможет.

3 голосов
/ 25 марта 2020
/**
     * 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 - окончательный выпуск, и этот метод больше не требуется. Он будет удален в будущем выпуске библиотеки поддержки.

Пожалуйста, верните версию

 implementation 'com.google.android.gms:play-services-base:17.1.0'
 implementation 'com.google.android.gms:play-services-base:17.0.0' //OR
2 голосов
/ 31 марта 2020

Ошибка была в com.google.android.gms:play-services-base:17.2.0 Предыдущие ответы, в которых говорилось о понижении до 17.1.0, были правильными, но Google исправил проблему, поэтому вы можете перейти на 17.2.1, и она также работает нормально.

Эти три были обновлены вместе, поэтому увеличьте их все, если вы их используете:

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

Источник: https://developers.google.com/android/guides/releases

0 голосов
/ 25 марта 2020

Я исправил это, установив это в моем app / build.gradle

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