Несоответствие версии компилятора Android Kotlin Compose между модулями

Я использую в своем приложении два модуля: один для Android и один для WearOS. Оба модуля используют Jetpack Compose.

Я могу без проблем собрать свой Android-модуль, используя kotlin-gradle-plugin:1.7.20. Если я переключаюсь на модуль Wear, AndroidStudio выводит ошибку о том, что ему нужна другая версия kotlin-gradle-plugin. Это ошибка, которую я получаю:

This version (1.1.1) of the Compose Compiler requires Kotlin version 1.6.10 but you appear to be using Kotlin version 1.7.20 which is not known to be compatible.  Please fix your configuration (or `suppressKotlinVersionCompatibilityCheck` but don't say I didn't warn you!).

Естественно, я попытался понизить свою версию Kotlin до 1.6.10, однако это вызывает совершенно другую проблему при попытке собрать любой модуль:

jetified-savedstate-ktx-1.2.1-api.jar!/META-INF/savedstate-ktx_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.

Пробовал Invalidate caches and restart после смены версии

Заключить:

  • Модулю Android нужна версия 1.7.20
  • Модулю одежды нужна версия 1.6.10
  • При понижении версии я получаю другую ошибку, которую не могу устранить

Как бы вы это исправили? Насколько я знаю, я не могу указать версию kotlin-gradle-plugin на основе модуля, и она должна быть в файле gradle проекта. Я не нашел способа указать модуль для зависимости в корневом файле, как это реализовано с ароматами.

Может быть, вы можете попробовать обновить версию Compose до 1.3.2?

Javlon 18.04.2023 22:50

Я использую wear_compose_version = '1.2.0-alpha08', который является самым новым, кроме того, я использую androidx.compose:compose-bom:2023.04.00 в обоих модулях.

BlazeCodeDev 19.04.2023 12:09

Вы рассматривали возможность попробовать несколько наборов исходных текстов Gradle stackoverflow.com/questions/45800829/…. Используйте разные версии kotlin-gradle-plugin для Android и WearOS. Или используйте свойства Gradle, чтобы указать версии зависимостей, а затем укажите эти свойства в зависимостях вашего модуля в gradle.properties androidKotlinVersion=1.7.20 WearKotlinVersion=1.6.10

shabby 20.04.2023 08:56
1
4
95
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Версия компилятора Compose тесно связана с версией kotlin. Поскольку вы не можете изменить версию kotlin, вам необходимо изменить версию компилятора compose. Сейчас это 1.1.1, измените его на 1.3.2.

Примечание: компилятор compose — это не то же самое, что compose. Их версионность независима именно по этой причине.

Спасибо, я пропустил параметр kotlinCompilerExtensionVersion в файле wear gradle, у меня его нет в моем модуле app

BlazeCodeDev 20.04.2023 12:53

Другие вопросы по теме