У меня есть проект студии 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. Кто-нибудь знает решение этого?
Это ошибка в плагине Kotlin. Я зарегистрировал вопрос в системе отслеживания проблем Kotlin. Вы можете просто проигнорировать сообщение.
Обновлено: JetBrains пометил проблему как дубликат КТ-23744 «Библиотека Kotlin и версии плагина Gradle отличаются» «проверка ложноположительных зависимостей, не связанных с JVM».
По-прежнему ошибка в AS 3.3.1 и kotlin версии 1.3.21
Тем не менее, существуют в AS 3.4 и Kotlin 1.3.30.
Тем не менее, существуют в AS 3.4.1 и Kotlin 1.3.31.
Тем не менее, существует в AS 3.4.1 и Kotlin 1.3.40.
Просто хотел убедиться, что это ошибка
Тем не менее, существует в AS 3.4.1 и Kotlin 1.3.41.
Я получаю это для 1.3.50 (требуется kotlinx-coroutines), а IJ 2019.2.1 хочет 1.3.41
Тем не менее, существует в AS 3.5 и Kotlin 1.3.50.
Тем не менее, существует в AS 3.5.3 и Kotlin 1.3.61.
Тем не менее, существует в AS 3.6 и Kotlin 1.3.61.
Тем не менее, существует в AS 3.6 и Kotlin 1.3.70.
Тем не менее, существует в AS 4.0 и Kotlin 1.3.61.
Все еще существует в AS 3.5.3 и Kotlin 1.3.71
Тем не менее, существует в AS 3.6.2 и Kotlin 1.3.71.
Тем не менее, существует в AS 3.6.3 и Kotlin 1.3.71.
Тем не менее, существует в AS 4.0 и Kotlin 1.3.72.
Тем не менее, существует в AS 4.0 и Kotlin 1.3.72.
Тем не менее, существует в AS 4.1 и Kotlin 1.4.0.
Тем не менее, существует в AS5.0 и Kotlin 1.3.72, я думаю, никого не волнует, никогда не уйдет, лол
Тем не менее, существуют в AS 4.0.1 и Kotlin 1.4.0.
Тем не менее, существует в AS 4.2 Canary 10 и Kotlin 1.4.10.
Тем не менее, существует в AS 4.1 и Kotlin 1.4.10.
Тем не менее, существует в AS 4.1 и Kotlin 1.4.10.
Тем не менее, существует в AS 4.2 (Canary) и Kotlin 1.4.10.
Имеется в AS4.2C14 и kotlin 1.4.20-M2
Тем не менее, существует в AS 4.1 и Kotlin 1.4.10.
Тем не менее, существует в AS 4.1.1 и Kotlin 1.4.20.
Просто удалите эту строку из вашего build.gradle, и предупреждение исчезнет: implementation "org.jetbrains.kotlin: kotlin-stdlib-jdk7: $ kotlin_version"
Тем не менее, существует в AS 4.1.1 и Kotlin 1.4.21.
Как это исправить? или просто игнорировать ???
Похоже, мы могли бы просто удалить строку stdlib, начиная с kotlin 1.4, в соответствии с ответом ниже.
похоже, что он все еще существует в 1.4.30
Тем не менее, существует в AS 4.1.2 и Kotlin 1.4.30.
Вы все должны увидеть ответ @Spatz, приведенный ниже. stackoverflow.com/a/64988522/9316730implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" больше не требуется
Тем не менее, существует в AS 4.1.2 и Kotlin 1.4.30.
@yole: Все еще существует в версии 1.4.31. Не могли бы вы разобраться с сообщенной вами ошибкой.
Тем не менее, существует в AS 4.1.3 и Kotlin 1.4.32.
Начиная с Котлин 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.
круто, лучший ответ
это правильный ответ, например Вам больше не нужен implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
Таким образом, ошибка находится в шаблоне студии Android для новой библиотеки или проекта, она устанавливает эту зависимость по умолчанию.
@Spatz: Не могли бы вы предоставить какие-либо официальные заявления / ссылки от Jetbrains для вышеуказанного изменения.
Я столкнулся с той же проблемой при использовании 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
KT-23744 отмечен как фиксированный и должен быть исправлен в
1.3.20. Однако я все еще сталкиваюсь с этой проблемой в студии Android для версии плагина kotlin1.3.20-release-Studio3.3-1. В IntelliJ для версии плагина kotlin1.3.20-release-IJ2018.3-1у меня нет этой проблемы.