Несовместимые версии Gradle - Сервисы Google Play

1

Так как я обновил библиотеку сервисов Google Play до версии 16.0.0, мой Линтер выдает следующую ошибку:

Несовместимые версии Gradle

../../build.gradle: все библиотеки com.google.android.gms должны использовать одну и ту же спецификацию версий (смешивание версий может привести к сбоям во время выполнения). Найдено версии 16.0.1, 16.0.0. Примеры включают com.google.android.gms: play-services-base: 16.0.1 и com.google.android.gms: play-services-location: 16.0.0

Я отобразил все зависимости и увидел это:

com.google.android.gms: игры-сервисы Откуда: 16.0.0

| | + --- com.google.android.gms: база play-services: 16.0.1

По-видимому, у Google Play-Services-Location 16.0.0 есть внутренняя зависимость от Play-Services-Base 16.0.1, которая вызывает ошибку из-за несоответствия версий.

В файле gradle моих проектов я уже обновил зависимость от Google:

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

Я должен отправить приложение с местоположением версии 16.0.0, как я могу это исправить?

изменение: зависимости в моем build.gradle:

compile fileTree(include: ['*.jar'], dir: 'libs')
    compile libraries.support
    compile project(path: ':core')

    compile 'com.google.android.gms:play-services-location:16.0.0' {
        exclude module: 'support-v4'
    }

    compile libraries.kotlin
    compile libraries.eventbus

    // Dagger 2 and Compiler
    compile 'com.google.dagger:dagger:2.21'
    provided libraries.appcompat
    kapt libraries.daggerCompiler
Теги:
gradle
google-play-services

3 ответа

2

Вы можете попробовать исключить 16.0.1 из град-импорта служб определения местоположения, например:

implementation 'com.google.android.gms:play-services-base:16.0.0'
implementation ('com.google.android.gms:play-services-location:16.0.0') {
    exclude group:'com.google.android.gms', module: 'play-services-base'
}
  • 0
    Я уже пробовал, но без play-services-base проект не компилируется из-за отсутствия классов
  • 0
    Можете ли вы поделиться выводом из приложения gradle: зависимости или ./gradlew приложение: зависимости?
Показать ещё 1 комментарий
0
configurations.all {
   resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.google.gms') {
            if (requested.name.contains("play-services-location")) {
                details.useVersion "16.0.0"
            }
            if (requested.name.contains("play-services-base")) {
                details.useVersion "16.0.0"
            }
        } 

    }
}

Попробуй это

-2

Включите поддержку multidex в вашем проекте

android {
compileSdkVersion 28
defaultConfig {

  multiDexEnabled true
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню