Несовместимые версии Gradle - Сервисы Google Play - PullRequest
1 голос
/ 29 марта 2019

С тех пор, как я обновил библиотеку сервисов 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: play-services-location: 16.0.0

||+ --- com.google.android.gms: play-services-base: 16.0.1

По-видимому, у Google play-services-location 16.0.0 есть внутренняя зависимость от play-services-base16.0.1, что приводит к ошибке из-за несоответствия версий.

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

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

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

edit: зависимости в моем 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

Ответы [ 2 ]

2 голосов
/ 29 марта 2019

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

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 голосов
/ 29 марта 2019
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"
            }
        } 

    }
}

попробуйте это

...