Несовместимые версии Gradle - Android - PullRequest
1 голос
/ 11 марта 2019

Мой файл gradle не выдает никакой ошибки при сборке. Но, когда я запускаю Android lint, происходит сбой из-за несовместимой версии Gradle.

Поделиться ошибкой:

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

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

Совместное использование зависимостей Google, определенных в gradle уровня приложения:

compile 'com.android.support:appcompat-v7:27.1.1'
compile 'com.android.support:gridlayout-v7:27.1.1'
compile 'com.android.support:design:27.1.1'
compile 'com.android.support:recyclerview-v7:27.1.1'
compile 'com.android.support:cardview-v7:27.1.1'
compile 'com.android.support:preference-v14:27.1.1'
compile 'com.android.support:support-annotations:27.1.1'
compile 'com.android.support.constraint:constraint-layout:1.1.3'
compile 'com.google.android.gms:play-services-location:15.0.1'
compile 'com.google.android.gms:play-services-maps:15.0.1'
compile 'com.google.android.gms:play-services-analytics:16.0.0'
compile 'com.google.android.gms:play-services-auth:16.0.0'
compile 'com.google.firebase:firebase-core:16.0.3'
compile 'com.google.firebase:firebase-messaging:17.3.0'
compile 'com.google.code.gson:gson:2.8.2'

Файл Gradle уровня проекта:

    classpath 'com.android.tools.build:gradle:2.3.3'
    classpath 'com.google.gms:google-services:1.5.0'

Какая зависимость делает эту ошибку? Как решить эту проблему несовместимости gradle?

Я попытался изменить все версии google gms на 15, но это не помогло решить проблему.

compile 'com.google.android.gms:play-services-location:15.0.1'
compile 'com.google.android.gms:play-services-maps:15.0.1'
compile 'com.google.android.gms:play-services-analytics:15.0.2'
compile 'com.google.android.gms:play-services-auth:15.0.1'

Ответы [ 5 ]

0 голосов
/ 11 марта 2019

Это происходит потому, что вы используете старый плагин

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

и различные версии библиотек служб Google.

Вам следует обновить Подключаемый модуль Google Services Gradle :

dependencies {
    classpath 'com.google.gms:google-services:4.2.0'
    // ...
}

Затем обновите свои зависимости , но не обязательно использовать ту же версию.

Начиная с плагина 3.3.0, существует другое поведение:

Библиотеки сервисов Google Play после 15.0.0 теперь имеют независимые номера версий, следующие за SemVer.Это изменение позволит более частые и гибкие обновления для отдельных компонентов.Плагин Google Services Gradle был обновлен до версии 3.3.0 для поддержки этого изменения в версиях.

Проверьте также документацию : УДАЛИТЕ ЭТУ СТАРЫЙ ШАБЛОН:

buildscript {
    ext {
        play_version = '15.0.0'
    }
}

dependencies {
    // DON’T DO THIS!!
    // The following use of the above buildscript property is no longer valid.
    implementation "com.google.android.gms:play-services-ads:${play_version}"
    implementation "com.google.android.gms:play-services-auth:${play_version}"
    implementation "com.google.firebase:firebase-firestore:${play_version}"
}

Теперь каждая используемая вами зависимость теперь может иметь разные версии.

0 голосов
/ 11 марта 2019

Перейти к просмотру проекта андроид студии. В библиотеках .idea> вы найдете библиотеки с версиями 16.0.2, 16.0.1, 16.0.0, 15.1.0, 15.0.1.

enter image description here

Эти библиотеки импортируются как зависимости от тех, что есть в вашем файле build.gradle. Импортируйте последние версии этих библиотек в свои зависимости, чтобы устранить ошибку.

0 голосов
/ 11 марта 2019

Вам необходимо обновить инструменты сборки Gradle до этой версии: -

 classpath 'com.android.tools.build:gradle:3.2.1'

и сервисы Google Play

 classpath 'com.google.gms:google-services:3.2.0'
0 голосов
/ 11 марта 2019

добавление к @ Nouman Ch ответ. Это последние зависимости

implementation 'com.google.android.gms:play-services-location:16.0.0'
implementation 'com.google.android.gms:play-services-maps:16.1.0'
implementation 'com.google.android.gms:play-services-analytics:16.0.6'
implementation 'com.google.android.gms:play-services-auth:16.0.1'

проверка здесь и здесь для поиска последних версий

0 голосов
/ 11 марта 2019

Сообщение об ошибке

Все библиотеки com.google.android.gms должны использовать одну и ту же спецификацию версии (смешивание версий может привести к сбоям во время выполнения).Найденные версии 16.0.2, 16.0.1, 16.0.0, 15.1.0, 15.0.1.

очень четко говорят о том, что

Это то, что у вас есть сейчас:

compile 'com.google.android.gms:play-services-location:15.0.1'
compile 'com.google.android.gms:play-services-maps:15.0.1'
compile 'com.google.android.gms:play-services-analytics:16.0.0'

это должно быть:

compile 'com.google.android.gms:play-services-location:16.0.2'
compile 'com.google.android.gms:play-services-maps:16.0.2'
compile 'com.google.android.gms:play-services-analytics:16.0.2'

Кроме того, старайтесь всегда использовать последнюю версию API Google.

Надеюсь, это поможет вам.

...