Если вы используете Navigation SDK для Android 6.0+, вам необходимо выполнить обновление до Kotlin 2.0. На этой странице представлены рекомендации по упрощению перехода на новую версию Kotlin.
Совместимость Gradle и AGP
Kotlin 2.0 предъявляет требования к минимальной и максимальной версиям вашей версии Gradle и Android Gradle Plugin (AGP). Убедитесь, что ваш проект соответствует этим требованиям для Kotlin 2.0.
Минимальная версия AGP для Navigation SDK 6.0+
Мы рекомендуем использовать AGP 7.3+ с навигационным SDK 6.0. Мы проверили SDK с AGP 8.3 и Gradle 8.4, и SDK совместим с полным режимом R8.
Совместимость версий Котлина
Kotlin поддерживает обратную совместимость с тремя предыдущими языковыми версиями . Это означает, что если вы уже используете Kotlin 1.7+ с Navigation SDK, вы сможете перейти на Kotlin 2.0 без необходимости внесения всех критических изменений. Однако это относится только к стабильным функциям языка . Если вы используете альфа-, бета- или экспериментальные функции языка Kotlin, вам, возможно, придется внести дополнительные изменения при обновлении.
Облегчение перехода: флаги совместимости Kotlin
Как отмечалось в предыдущем разделе, Kotlin при обновлении поддерживает до 3-х предыдущих версий языка. Kotlin предоставляет два флага, помогающих ограничить критические изменения :
языковая версия XY
Этот флаг отменяет критические изменения в поведении предыдущей версии Kotlin. Например, если вы используете Kotlin 1.7, вы можете указать [ - language-version 1.7]
и новые критические изменения больше не вступят в силу:
android {
kotlinOptions {
languageVersion = '1.7'
}
}
API-версия XY
Этот флаг предотвращает использование новых API до того, как зависимый нижестоящий код будет готов к включению Kotlin 2.0.
android {
kotlinOptions {
apiVersion = '1.7'
}
}
Более целенаправленный подход
Помимо использования флагов совместимости Kotlin, мы рекомендуем просмотреть примечания к выпуску Kotlin и выбрать поведение, которое вы хотели бы сохранить в версии, с которой вы обновляетесь. Kotlin предоставляет список критических изменений и флагов, которые можно установить для сохранения исходного поведения, в руководствах по совместимости для каждой версии: