В проекте "приложение" разрешенная зависимость библиотеки сервисов Google Play зависит от другой конкретной версии

Пытаюсь создать простое приложение с FireStore и Google Authentication. Возникла проблема с градиентом:

In project 'app' a resolved Google Play services library dependency depends on another at an exact version (e.g. "[15.0. 1]", but isn't being resolved to that version. Behavior exhibited by the library will be unknown.

Dependency failing: com.google.android.gms:play-services-flags:15.0.1 -> com.google.android.gms:play-services-basement@[ 15.0.1], but play-services-basement version was 16.0.1.

The following dependencies are project dependencies that are direct or have transitive dependencies that lead to the art ifact with the issue. -- Project 'app' depends onto com.google.firebase:[email protected] -- Project 'app' depends onto com.firebaseui:[email protected]

For extended debugging info execute Gradle from the command line with ./gradlew --info :app:assembleDebug to see the dep endency paths to the artifact. This error message came from the google-services Gradle plugin, report issues at https:// github.com/google/play-services-plugins and disable by adding "googleServices { disableVersionCheck = false }" to your b uild.gradle file.

    apply plugin: 'com.android.application'

    android {
        compileSdkVersion 27
        defaultConfig {
            applicationId "myapp.com"
            minSdkVersion 19
            targetSdkVersion 27
            versionCode 11
            versionName "1.1"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
            multiDexEnabled true
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }

    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation 'com.android.support:appcompat-v7:27.1.1'
        implementation 'com.android.support.constraint:constraint-layout:1.1.3'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.2'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
        implementation 'com.google.firebase:firebase-firestore:17.1.5'

        implementation 'com.firebaseui:firebase-ui-auth:4.2.0'

    }

    apply plugin: 'com.google.gms.google-services'
    com.google.gms.googleservices.GoogleServicesPlugin

Градл проекта:

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'

        classpath 'com.google.gms:google-services:4.2.0'

    }
}

Кто-нибудь может мне помочь?

54
0
66 867
22
Перейти к ответу Данный вопрос помечен как решенный

Ответы 22

Проблема заключалась в отсутствии зависимости. Добавление com.google.firebase: firebase-auth решило проблему.

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.google.firebase:firebase-firestore:17.1.5'

//    implementation'com.google.firebase:firebase-core:16.0.6'
//    implementation'com.google.firebase:firebase-storage:16.0.5'

    implementation'com.google.firebase:firebase-auth:16.1.0' => add this line
    implementation 'com.firebaseui:firebase-ui-auth:4.2.0'
}

как вы узнали об этом?

DjP 12.02.2019 13:10

Используйте последнюю версию com.google.firebase: firebase-auth: 17.0.0, чтобы избежать ошибки во время выполнения.

garry 12.06.2019 10:53

Как ты это понял?

Ben Butterworth 25.03.2020 20:45

Обновление всех моих библиотек сервисов Google Play до последней версии во ВСЕХ модулях решило проблему для меня. Я не вижу, чтобы у вас есть какие-либо библиотеки сервисов Google Play, но я хочу оставить этот ответ здесь для тех, кто может найти это полезным.

Спасибо, но, к сожалению, у меня это не сработало. Мне также пришлось добавить следующее в мой build.grade (Module: app)

implementation 'com.google.android.gms:play-services-flags:16.0.1'
implementation 'com.google.android.gms:play-services-basement:16.0.1'

Это может быть вызвано известная ошибка с Google Services 4.2.0. Понижение версии google-services до 4.1.0 в build.gradle вашего проекта может решить проблему.

buildscript {
    dependencies {
        classpath 'com.google.gms:google-services:4.1.0' //decreased from 4.2.0
    }
}

Я использую classpath 'com.google.gms:google-services:4.3.3', хотя получаю сообщение об ошибке.

Pratik Butani 20.11.2019 08:33

Снизился до 4.1.0, и теперь все работает нормально.

Mostafa Arian Nejad 15.01.2020 07:58

У меня эта проблема возникает при добавлении полосы sdk. Этот метод решает проблему. Никогда не угадай, это проблема гугл-сервиса. Спасибо.

Josepharaoh 26.03.2021 22:25

Добавить FCM в ваше приложение добавлено Более низкая зависимость Затем я изменил зависимость на последнюю версию, которую решила эта проблема.

compile 'com.google.firebase:firebase-messaging:17.3.4'

к

implementation 'com.google.firebase:firebase-messaging:20.0.0'

Я добавил последнюю версию обмена сообщениями firebase в build.gradle (Module: app) в свой проект, и проблема решена

implementation 'com.google.firebase:firebase-messaging:20.0.0'

Большое спасибо! Легко и эффективно, сэкономив много времени!

Chandler 29.03.2021 01:04

Рабочим решением для меня было удаление firebase-auth и добавление зависимости firebase-core. Но после пары пересборок проекта я начал испытывать еще одну проблему с компиляцией, поэтому мне пришлось добавить зависимость firebase-auth в дополнение к firebase-core, чтобы заставить ее работать:

implementation 'com.google.firebase:firebase-auth:19.0.0'
implementation 'com.google.firebase:firebase-core:17.0.1'
implementation 'com.firebaseui:firebase-ui-auth:4.3.1'
Ответ принят как подходящий

Здесь есть много ответов для индивидуальных решений, которые на самом деле не сводятся к проблеме. Вот как это вообще решить:

Как следует из исходных выходных данных журнала, полезно запустить сборку в терминале с помощью следующей команды:

./gradlew --info assembleDebug

Это даст вам список всех зависимостей, участвующих в конфликте. Это похоже на это (я удалил название пакета, чтобы сделать его более читаемым):

Dependency Resolution Help: Displaying all currently known paths to any version of the dependency: Artifact(groupId=com.google.firebase, artifactId=firebase-iid)

-- task/module dep -> [email protected]
---- firebase-analytics:17.2.0 library depends -> [email protected]
------ play-services-measurement-api:17.2.0 library depends -> [email protected]

-- task/module dep -> [email protected]
---- firebase-core:17.2.0 library depends -> [email protected]
------ firebase-analytics:17.2.0 library depends -> [email protected]
-------- play-services-measurement-api:17.2.0 library depends -> [email protected]

-- task/module dep -> [email protected]
---- play-services-measurement-api:17.2.0 library depends -> [email protected]

-- task/module dep -> [email protected]

-- task/module dep -> [email protected]
---- firebase-messaging:17.1.0 library depends -> firebase-iid@[16.2.0]

-- task/module dep -> com.pressenger:[email protected]
---- com.pressenger:sdk:4.8.0 library depends -> [email protected]
------ firebase-messaging:17.1.0 library depends -> firebase-iid@[16.2.0]

Из этого списка вы узнаете 2 вещи:

  1. Где обнаружена противоречивая зависимость
  2. Какие версии конфликтующей зависимости настроены

В моем случае конфликтующая зависимость - firebase-iid: либо @19.0.0, либо @16.2.0.

Чтобы исправить это, вы должны явно определить зависимость верхнего уровня неправильного firebase-iid в вашем build.gralde.

Итак, в верхнем журнале вы можете увидеть, что есть 2 примера устаревшей версии [email protected]. Один идет от -- task/module dep -> [email protected], другой - из сторонней библиотеки (пресенджера). У нас нет влияния на стороннюю библиотеку, поэтому здесь делать нечего. Но для другой зависимости мы должны явно объявить ее с правильной версией:

implementation 'com.google.firebase:firebase-messaging:20.0.0'

Теперь сборка снова работает. Счастливый конец :)

Спаси мой день. Спасибо

Fazal Hussain 16.01.2020 12:50

А как ты перескочил с \ @ 19.0.0 и \ @ 16.2.0 на \ @ 20.0.0

baconcheese113 11.02.2020 07:39

@baconcheese, дело не в другой версии filebase-iid! Вместо этого вы должны явно установить зависимость всех task/module dep, которые используют устаревшую версию firebase-iid.

muetzenflo 11.02.2020 10:03

Это было чрезвычайно полезно. Большое спасибо за объяснение вашего ответа

Brian Redd 24.04.2020 23:08

@ live-love, можешь ли ты отметить это как правильный ответ?

FMDM 28.06.2020 18:56

Что ж, это очень помогло мне узнать об этом способе прямого получения журнала gradle, но мне все еще было трудно (и мне повезло, я думаю, в определенном смысле), чтобы узнать, какую версию использовать для моей зависимости верхнего уровня. Для меня исправление было: «implementation 'com.google.android.gms: play-services-vision: 20.1.0'», но я не был уверен, где найти, какие версии были даже доступны для play-services-vision (20.1 .2 был последним, я думаю, но 20.1.0 работал). Получил это от developers.google.com/android/guides/setup

Eradicatore 12.11.2020 22:45

@Eradicatore - это не столько конкретная версия, сколько нужно иметь одну и ту же версию для всех зависимостей. Вы можете найти список распространенных выпусков здесь: developers.google.com/android/guides/releases (используйте Ctrl + F, чтобы найти нужную библиотеку)

muetzenflo 13.11.2020 11:35

Мой проект работал нормально (проблем со сборкой нет). Внезапно я получил эту ошибку

"resolved Google Play services library dependency depends on another at an exact version.."

Я понял, что это потому, что я строил офлайн.

Если кто-то получит такую ​​же ошибку, проверьте, строите ли вы офлайн.

Я был похож на вас, проект работал, и внезапно я столкнулся с этой ошибкой, моя проблема заключалась в http-прокси, который я установил в студии Android, он был отключен, и я не мог синхронизировать или построить свой проект.

Reyhane Farshbaf 24.11.2019 08:34

Для меня это ново, если ваша сеть небезопасна и вы получаете запрос о ненадежном сертификате.

Если вы сделаете Принять или отклонить, он будет выдавать эту ошибку, пока ваша сеть не будет защищена.

Вы можете работать офлайн, отметив Настройка -> Gradle -> Автономный режим

Была ошибка, связанная с google-сервисами, которая была исправлена ​​в версии 4.3.3.

Таким образом, вы можете использовать 4.3.3 или последняя версия (проверьте здесь)

classpath 'com.google.gms:google-services:4.3.3' // or latest version

или перейти на 4.1.0

classpath 'com.google.gms:google-services:4.1.0'

Ни один из других ответов не помог мне. В моем случае React-Native 61+ пытается настроить FCM и Analytics. Что сработало для меня, так это использование последней версии google-services в android/build.gradle.

dependencies {
    classpath "com.android.tools.build:gradle:3.4.2"
    classpath "com.google.gms:google-services:4.3.3" // Need the latest here
}

А затем добавление зависимостей gradle в android/app/build.gradle, необходимых для продуктов, которые я использую (в моем случае Analytics и Cloud Messaging) из здесь

dependencies {
    ...
    // add the Firebase SDK for Google Analytics
    implementation 'com.google.firebase:firebase-messaging:20.1.0'
    implementation 'com.google.firebase:firebase-analytics:17.2.2'
    ...
}

На вашем app/build.gradle этот лимонный цвет может быть заблокирован в части зависимостей в Android Studio, как на картинке ниже,

image

Эти (блоки лимонного цвета) означают, что это не последняя версия зависимости. просто наведите указатель мыши на каждый блок, и IDE (Android Studio) сообщит числа, которые необходимо изменить.

Если вы использовали ответ песня хэсук, вам нужно сделать это как для проекта build.gradle (путь к классам в зависимостях), так и в приложении build.gradle (реализации). Также сделайте то же самое, если вы измените сборки для любых библиотек, импортированных в приложение.

Я использую предложения, предоставленные студией Android, и она изменила реализации, но не изменила зависимости, поэтому во время сборки возник конфликт между ними, и это дало мне ту же ошибку.

Проблема была исправлена ​​после обновления этой библиотеки в моем проекте build.gradle:

classpath 'com.google.gms:google-services:4.3.3'

и эти в файле build.gradle модуля приложения:

implementation 'com.google.firebase:firebase-core:17.3.0'
implementation 'com.google.firebase:firebase-messaging:20.1.5'

После этого используйте меню Android Studio Clean.

Я воспроизвел проблему, когда случайно дважды добавил com.google.firebase:firebase-ml-vision с разными версиями.

Добавьте строку ниже в свой проект build.gradle (см. Изображение ниже)

classpath 'com.google.gms:google-services:4.3.3'

Затем обновите свои пакеты, связанные с Firebase, перейдя по ссылке:

Файл> Структура проекта> Зависимости> приложение

Обновите модули Firebase до последней версии (см. Изображение ниже)

В моем случае я использую:

implementation 'com.google.firebase:firebase-database:19.3.0'
implementation 'com.google.firebase:firebase-auth:19.3.1'
implementation 'com.google.firebase:firebase-messaging:20.1.7'
implementation 'com.google.firebase:firebase-core:17.4.0'
implementation 'com.google.firebase:firebase-storage:19.1.1'

implementation 'com.google.firebase:firebase-analytics:17.2.2'

Не забудьте добавить:

apply plugin: 'com.google.gms.google-services'

См. Файл build.gradle моего модуля ниже.

Я решил это, просто очистив блок зависимостей на уровне приложения, оставив только зависимости Android по умолчанию, например:

dependencies {
  testImplementation 'junit:junit:4.12'
  androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
  androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
  implementation 'androidx.multidex:multidex:2.0.0'
}

Я только что попробовал принятый ответ @ live-love и согласен с таким подходом.

Однако было бы более точным исправить ваши зависимости в соответствии с последняя версия библиотеки сервисов Google.

В моем случае это произошло, когда я просто добавил / активировал службу Firebase в приложение.

Вам необходимо следить за последней версией в проекте и приложении Gradle.

Мой app/build.gradle

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    //Android Support Design Library
    implementation 'com.android.support:design:27.1.1'
    //RecyclerView
    implementation 'com.android.support:recyclerview-v7:27.1.1'
    // Support multidex
    implementation 'com.android.support:multidex:1.0.3'
    // Firebase Core
    // implementation 'com.google.firebase:firebase-core:16.0.1'
    //Firebase Authentication
    implementation 'com.google.firebase:firebase-auth:19.3.1'
    // Firestore Firestore
    implementation 'com.google.firebase:firebase-firestore:21.4.3'
    implementation 'com.google.firebase:firebase-analytics:17.2.2'
    // glide
    implementation 'com.github.bumptech.glide:glide:4.8.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'

    // Circle ImageView
    implementation 'de.hdodenhof:circleimageview:2.2.0'
}
apply plugin: 'com.google.gms.google-services'

build.gradle моего проекта

dependencies {
    classpath 'com.android.tools.build:gradle:3.5.3'
    classpath 'com.google.gms:google-services:4.3.3'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

Не забудьте снова синхронизировать Gradle.

Я использую One Signal и обнаруживаю эту ошибку один раз.

Причина была:

apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
apply plugin: 'com.android.application'

поставить apply plugin на один сигнал перед 'com.android.application'. Может быть, это будет полезно и для некоторых других apply plugin.

This worked for me!

dependencies {
    classpath "com.android.tools.build:gradle:3.4.2"
    classpath "com.google.gms:google-services:4.3.3" // Need the latest here
}

dependencies {
    ...
    // add the Firebase SDK for Google Analytics
    implementation 'com.google.firebase:firebase-messaging:20.1.0'
    implementation 'com.google.firebase:firebase-analytics:17.2.2'
    ...
}

В последней версии библиотеки ML Kit были проблемы с версией.

Google Play services library dependency depends on another at an exact version error (thrown by the google-services plugin)

Вот ссылка на решение. https://firebase.google.com/support/release-notes/android#bom_v25-8-0

Другие вопросы по теме