Совместимость версий Kotlin и перенос

На этой странице вы найдете информацию о совместимости версий Kotlin с Navigation SDK, а также инструкции по переходу на более новую версию.

В таблице ниже указаны требования к версии Kotlin и рекомендуемые версии AGP и Gradle для последних версий Navigation SDK.

Версия Navigation SDK Версия Kotlin (обязательно) Версии плагина Android Gradle (AGP) и Gradle (рекомендуется)
8.0 и более поздних версий 2.3.0
  • AGP 9.0.1
  • Gradle 9.1.0

Важно! Для Navigation SDK 8.0 и более поздних версий AGP 9.0.1 – это минимальное требование, а не рекомендация. SDK объявляет minAndroidGradlePluginVersion=9.0.1, и сборки, использующие более раннюю версию AGP, завершаются ошибкой.

7.7–7.9 2.3.0
  • AGP 8.13.2
  • Gradle 8.13
7.3–7.6 2.2.10
  • AGP 8.10.0
  • Gradle 8.11.1
6.3–7.2 2.1
  • AGP 8.7.3
  • Gradle 8.10.2
6.0–6.2 2.0
  • AGP 8.3.0
  • Gradle 8.4
5.1–5.99.1 1.9 Рекомендуем использовать AGP 7.3 или более поздней версии, в которой есть обходное решение для JDK-8272564.

Совместимость версий Kotlin

Kotlin 2.3 поддерживает обратную совместимость с Kotlin 2.2. Это означает, что если вы уже используете Kotlin 2.2 с Navigation SDK, вы сможете перейти на Kotlin 2.3 без необходимости устранять все критические изменения. Однако это относится только к стабильным функциям языка. Если вы используете альфа-, бета- или экспериментальные функции на языке Kotlin, то при обновлении вам может потребоваться внести дополнительные изменения.

Как упростить переход: параметры совместимости с Kotlin

В Kotlin есть два флага, которые помогают ограничить критические изменения: https://kotlinlang.org/docs/compatibility-modes.html.

language-version X.Y

Этот флаг отменяет критические изменения в поведении предыдущей версии Kotlin. Например, если вы используете Kotlin 2.2, то можете указать [ - language-version 2.2], и новые критические изменения не будут применяться.

android {
   kotlinOptions {
       languageVersion = '2.2'
   }
}

api-version X.Y

Этот флаг вызывает ошибку сборки Gradle, когда используется API из версии Kotlin, которая новее, чем apiVersion.

android {
   kotlinOptions {
       apiVersion = '2.2'
   }
}

Более целенаправленный подход

Помимо использования флагов совместимости Kotlin, мы рекомендуем ознакомиться с примечаниями к выпуску Kotlin и выбрать поведение, которое вы хотите сохранить из версии, с которой вы обновляетесь. В руководствах по совместимости для каждой версии Kotlin есть список критических изменений и флагов, которые можно установить, чтобы сохранить исходное поведение.

Будущие обновления Kotlin

Новая версия Kotlin (то есть версия языка) выходит каждые шесть месяцев. Обычно через один-два месяца после этого Google начинает использовать последнюю версию по умолчанию в своих продуктах. Предыдущие версии Kotlin содержали критические изменения, из-за которых пользователям Navigation SDK приходилось обновлять его до более новой версии. Поэтому мы рекомендуем планировать обновление Kotlin каждые 6 месяцев при переходе на последнюю версию Navigation SDK.