kotlin-stdlib-jre7 устарел. Вместо этого используйте kotlin-stdlib-jdk7

Вчера я обновил версию Android Studio и версию плагина Kotlin.

Версия Android Studio: 3.1.2

Kotlin Версия: 1.2.41

Когда я создаю проект Android, используя эту конфигурацию, я получаю предупреждение Kotlin Compiler, говорящее

w: /home/ganeshtikone/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jre7/1.2.41/9e7a6f582de73d9cdc6c56ef4e23604a0ee55768/kotlin-stdlib-jre7-1.2.41.jar: kotlin-stdlib-jre7 устарел. Вместо этого используйте kotlin-stdlib-jdk7

Изменено в соответствии с предложением, затем я получаю следующую ошибку

Неожиданные входы: ImmutableJarInput {name = org.jetbrains.kotlin: kotlin-stdlib-jre7: 1.2.41, file =/home/ganeshtikone/Workspace/May-2018/fhs/app/build/intermediates/transforms/desugar/stage/debug/45.jar, contentTypes = CLASSES, scopes = EXTERNAL_LIBRARIES, status = REMOVED}

Ответ 1

Перейдите в Инструменты> Kotlin> Настройте обновления плагина Kotlin и проверьте наличие обновлений, а затем в файле приложения gradle замените jre на jdk

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

Ответ 2

Важное обновление

Необходимо проверить версию JDK перед настройкой конфигурации

Страница конфигурации Kotlin Gradle содержит подробную информацию об этом.

Прежде всего, проверьте вашу версию kotlin в файле Gradle.

if (kotlin_version == '1.2.x') (используйте jdk NOT jre)

Сначала проверьте свою версию JDK в Файл> Структура проекта.

sc

Или проверьте в build.gradle

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

если (jdk_version == 1.8)

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

если (jdk_version == 1,7)

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

если (jdk_version <1,7)

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

иначе если (в структуре проекта не установлена версия jdk)

if(Android_Studio_Version < 2.2.1){
   your_jdk_version = 1.7;
}
else {
   your_jdk_version = 1.8;
}

Потому что Android Studio поставляется с jdk 1.8 начиная с версии 2.2.1.

2. иначе if (kotlin_version == '1.1.x') (используйте jre NOT jdk)

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

Обновить версию Kotlin?

Вы можете обновить версию Kotlin из Сервис> Kotlin> Настроить обновления Kotlin

Ответ 3

Что-то транзитивно импортирует эти библиотеки. Запуск задачи Gradle dependencies, чтобы выяснить, что.

В моем случае это было io.vertx:vertx-lang-kotlin-coroutines:3.5.1.

Если обновление для зависимостей отсутствует, вы ничего не можете с этим сделать

Ответ 4

После чтения Kotlin Gradle Script Topic я узнаю, что некоторые пониты

Если вы нацеливаете JDK 7 или JDK 8, вы можете использовать расширенные версии стандартной библиотеки Kotlin, которые содержат дополнительные функции расширения для API-интерфейсов, добавленных в новые версии JDK. Вместо kotlin-stdlib используйте одну из следующих зависимостей:

компилировать "org.jetbrains.kotlin: kotlin-stdlib-jdk7"
компилировать "org.jetbrains.kotlin: kotlin-stdlib-jdk8"

Я использовал реализацию "org.jetbrains.kotlin: kotlin-stdlib-jdk8" в своем проекте. Я думаю, это из-за compileOptions, установленного в build.graddle

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

Ответ 5

Вы должны поменять местами коды ниже:

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

Не jre> jdk

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