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
(залежно від того, яку версію ви спочатку використовували).