Предупреждение: «Версия плагина Kotlin не совпадает с версией библиотеки» (но это так!)

У меня есть проект студии Android, в который я добавил модуль библиотеки Java, который я назвал core. Мои три файла сборки Gradle выглядят так.

проект / build.gradle

buildscript {
    ext.kotlin_version = '1.2.40'
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

ядро / build.gradle

apply plugin: 'java-library'
apply plugin: 'kotlin'

dependencies { 
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7"
    ...
}

приложение / build.gradle

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android { ... }

dependencies {
    implementation project(':core')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    implementation 'com.android.support:appcompat-v7:27.1.1'

    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    testImplementation 'junit:junit:4.12'
}

У меня проблема в том, что в core/build.gradle строка kotlin-stdlib-jdk7 выдает предупреждение Plugin version (1.2.40) is not the same as library version (jdk7-1.2.40). Я попытался изменить его на:

implementation "org.jetbrains.kotlin:kotlin-stdlib"

implementation "org.jetbrains.kotlin:kotlin-stdlib:1.2.40"

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.40"

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"

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

144
0
30 302
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Это ошибка в плагине Kotlin. Я зарегистрировал вопрос в системе отслеживания проблем Kotlin. Вы можете просто проигнорировать сообщение.

Обновлено: JetBrains пометил проблему как дубликат КТ-23744 «Библиотека Kotlin и версии плагина Gradle отличаются» «проверка ложноположительных зависимостей, не связанных с JVM».

KT-23744 отмечен как фиксированный и должен быть исправлен в 1.3.20. Однако я все еще сталкиваюсь с этой проблемой в студии Android для версии плагина kotlin 1.3.20-release-Studio3.3-1. В IntelliJ для версии плагина kotlin 1.3.20-release-IJ2018.3-1 у меня нет этой проблемы.

Weizhi 03.02.2019 04:19

По-прежнему ошибка в AS 3.3.1 и kotlin версии 1.3.21

Catluc 08.02.2019 08:56

Тем не менее, существуют в AS 3.4 и Kotlin 1.3.30.

Dr.jacky 18.04.2019 11:03

Тем не менее, существуют в AS 3.4.1 и Kotlin 1.3.31.

Dr.jacky 30.05.2019 10:00

Тем не менее, существует в AS 3.4.1 и Kotlin 1.3.40.

Alex_297 21.06.2019 15:53

Просто хотел убедиться, что это ошибка

smac89 26.07.2019 05:36

Тем не менее, существует в AS 3.4.1 и Kotlin 1.3.41.

JP Ventura 01.08.2019 16:21

Я получаю это для 1.3.50 (требуется kotlinx-coroutines), а IJ 2019.2.1 хочет 1.3.41

akarnokd 04.09.2019 11:28

Тем не менее, существует в AS 3.5 и Kotlin 1.3.50.

soshial 06.09.2019 16:31

Тем не менее, существует в AS 3.5.3 и Kotlin 1.3.61.

Ahmed Mourad 09.02.2020 07:00

Тем не менее, существует в AS 3.6 и Kotlin 1.3.61.

DevAnuragGarg 25.02.2020 08:57

Тем не менее, существует в AS 3.6 и Kotlin 1.3.70.

WiMank 06.03.2020 17:58

Тем не менее, существует в AS 4.0 и Kotlin 1.3.61.

Nurseyit Tursunkulov 11.03.2020 14:25

Все еще существует в AS 3.5.3 и Kotlin 1.3.71

Archison 27.03.2020 16:03

Тем не менее, существует в AS 3.6.2 и Kotlin 1.3.71.

Scott 13.04.2020 05:40

Тем не менее, существует в AS 3.6.3 и Kotlin 1.3.71.

Paul T. 28.04.2020 15:05

Тем не менее, существует в AS 4.0 и Kotlin 1.3.72.

Goran Horia Mihail 08.05.2020 11:41

Тем не менее, существует в AS 4.0 и Kotlin 1.3.72.

Bratislav Damnjanovic 12.06.2020 13:50

Тем не менее, существует в AS 4.1 и Kotlin 1.4.0.

Vadim Pikha 18.08.2020 11:46

Тем не менее, существует в AS5.0 и Kotlin 1.3.72, я думаю, никого не волнует, никогда не уйдет, лол

Luiz Felipe 03.09.2020 05:01

Тем не менее, существуют в AS 4.0.1 и Kotlin 1.4.0.

Void 06.09.2020 19:45

Тем не менее, существует в AS 4.2 Canary 10 и Kotlin 1.4.10.

Se7eN 17.09.2020 11:33

Тем не менее, существует в AS 4.1 и Kotlin 1.4.10.

Bhavin Desai 13.10.2020 15:47

Тем не менее, существует в AS 4.1 и Kotlin 1.4.10.

Mahyar Maleki 13.10.2020 16:13

Тем не менее, существует в AS 4.2 (Canary) и Kotlin 1.4.10.

Murtadha S. 13.10.2020 18:19

Имеется в AS4.2C14 и kotlin 1.4.20-M2

Roar Grønmo 21.10.2020 08:46

Тем не менее, существует в AS 4.1 и Kotlin 1.4.10.

real_shardul 07.11.2020 08:24

Тем не менее, существует в AS 4.1.1 и Kotlin 1.4.20.

Simone 24.11.2020 09:33

Просто удалите эту строку из вашего build.gradle, и предупреждение исчезнет: implementation "org.jetbrains.kotlin: kotlin-stdlib-jdk7: $ kotlin_version"

Mario Huizinga 02.12.2020 14:38

Тем не менее, существует в AS 4.1.1 и Kotlin 1.4.21.

Andrew Chelix 13.12.2020 19:52

Как это исправить? или просто игнорировать ???

Tony 14.12.2020 15:01

Похоже, мы могли бы просто удалить строку stdlib, начиная с kotlin 1.4, в соответствии с ответом ниже.

hoso.ch 29.12.2020 04:21

похоже, что он все еще существует в 1.4.30

Brill Pappin 11.02.2021 21:11

Тем не менее, существует в AS 4.1.2 и Kotlin 1.4.30.

Felipe 14.02.2021 00:15

Вы все должны увидеть ответ @Spatz, приведенный ниже. stackoverflow.com/a/64988522/9316730implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" больше не требуется

Praveen G 15.02.2021 07:51

Тем не менее, существует в AS 4.1.2 и Kotlin 1.4.30.

Aks4125 24.02.2021 15:19

@yole: Все еще существует в версии 1.4.31. Не могли бы вы разобраться с сообщенной вами ошибкой.

SVK 17.03.2021 04:22

Тем не менее, существует в AS 4.1.3 и Kotlin 1.4.32.

Alireza Farahani 11.04.2021 18:05
Ответ принят как подходящий

Начиная с Котлин 1.4 по умолчанию добавлена ​​зависимость от стандартной библиотеки:

You no longer need to declare a dependency on the stdlib library in any Kotlin Gradle project, including a multiplatform one. The dependency is added by default.

The automatically added standard library will be the same version of the Kotlin Gradle plugin, since they have the same versioning.

For platform-specific source sets, the corresponding platform-specific variant of the library is used, while a common standard library is added to the rest. The Kotlin Gradle plugin will select the appropriate JVM standard library depending on the kotlinOptions.jvmTarget compiler option of your Gradle build script.

Ссылка на сайт к документации плагина Kotlin Gradle.

круто, лучший ответ

Gabriel Fernandez 02.12.2020 20:04

это правильный ответ, например Вам больше не нужен implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

SqAR.org 12.01.2021 00:48

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

Helton Isac 17.02.2021 12:37

@Spatz: Не могли бы вы предоставить какие-либо официальные заявления / ссылки от Jetbrains для вышеуказанного изменения.

SVK 17.03.2021 04:24

@SVK Выпущен Kotlin 1.4.0-RC

Spatz 17.03.2021 05:18

Я столкнулся с той же проблемой при использовании Firebase с Kotlin. Мне пришлось обновить все зависимости до последней доступной версии.

Примечание: ваши версии kotlin-reflection и kotlin-stdlib должны быть одинаковыми.

[build.gradle (Модуль)]

dependencies {
    implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.5.10'
    implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.10'
    ...
}

Мой проект добавлен автоматически

(implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.10') 

в файл сборки проекта. После перемещения реализации в файл модуля и удаления

(implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.10')

предупреждение исчезло. «Stdlib» должен соответствовать «stdlib-jdk» в файле модуля.

через много дней я решил проблему Обновите kotlin_version до 1.4.32

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