kotlin-stdlib-jre[7/8]
устарела некоторое время назад и с тех пор была удалена.Примечание об устаревании сохранялось до 1.2.71 , который был последней версией, выпустившей эти артефакты.Официальное уведомление об устаревании можно найти здесь .Использование любой из устаревших версий (до ее удаления) также должно вызывать предупреждение (по крайней мере) в Android Studio и IntelliJ.
Используйте взамен kotlin-stdlib-jdk7
.Это та же зависимость, что и kotlin-stdlib-jre7
(кроме более новой), но она была переименована в kotlin-stdlib-jdk
.kotlin-stdlib-jre
больше не поддерживается как отдельная зависимость.
В настоящее время IntelliJ и Android Studio генерируют новые проекты с использованием kotlin-stdlib-jre7
; это скорее всего ошибка .Вероятно, они не обновили генераторы проекта.Поэтому вы должны вручную заменить зависимости рабочими, пока они не исправят это.Это зависит от плагина Kotlin.Обновите его, если вы этого не сделали. Я не проверял, был ли он исправлен или нет - если он есть, это только исправляет создание новых проектов.Для обновления с более старых версий остальная часть ответа по-прежнему применяется
Естественно, вы должны сделать это, если вы используете 1.2.71 или ниже, и вы обновляетесь до 1.3.0 или выше.
Это новые действительные зависимости от Kotlin 1.3.0:
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
Где $kotlinVersion
- это либо переменная, содержащая версию, либо жестко закодированная версия (т.е. 1.3.0
)
В качестве альтернативы, вы можете использовать "обычный" stdlib (kotlin-stdlib
) вместо специфичных для JDK версий.Но вы должны изменить свою зависимость в любом случае, поэтому я рекомендую вам использовать kotlin-stdlib-jdk7
, или, если вы планируете использовать Java 8, kotlin-stdlib-jdk8
Можно также найти самые новые версии зависимостей здесь .jdk7, jdk8 и stdlib, не зависящие от версии, следуют одним и тем же версиям (в соответствии с этим редактированием - это может измениться в будущем, но, скорее всего, будут уведомления до того, как произойдут эти изменения), так что, если вы проверите jdk8, jdk7 илиобычная, все версии должны быть универсально доступны для всех артефактов stdlib.
Примечание для других систем сборки
То же самое реальное решение применимо и к другим системам сборки, но код другой.Поскольку существует множество систем сборки, я не собираюсь включать все из них, но дело в том, чтобы изменить артефакт с kotlin-stdlib-jre[num]
на kotlin-stdlib-jdk[num]
(без скобок, конечно).Или, как упоминалось ранее, kotlin-stdlib
.
Независимо от системы сборки, он основывается на доступе к Maven Central и аналогичным репозиториям.Если ваша система сборки не поддерживает это и / или нарушает соглашения и репозитории в стиле Maven, вам нужно будет найти, что работает для вашей системы сборки.
TL; DR:
Вместо этого используйте org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version
или org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version
(в зависимости от того, какую версию вы изначально использовали).