Я использую в своем приложении два модуля: один для 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
после смены версии
Заключить:
1.7.20
1.6.10
Как бы вы это исправили? Насколько я знаю, я не могу указать версию kotlin-gradle-plugin
на основе модуля, и она должна быть в файле gradle проекта. Я не нашел способа указать модуль для зависимости в корневом файле, как это реализовано с ароматами.
Я использую wear_compose_version = '1.2.0-alpha08'
, который является самым новым, кроме того, я использую androidx.compose:compose-bom:2023.04.00
в обоих модулях.
Отвечает ли это на ваш вопрос? Для этой версии (1.1.1) компилятора Compose требуется Kotlin версии 1.6.10, но вы, похоже, используете Kotlin версии 1.5.31
Вы рассматривали возможность попробовать несколько наборов исходных текстов Gradle stackoverflow.com/questions/45800829/…. Используйте разные версии kotlin-gradle-plugin для Android и WearOS. Или используйте свойства Gradle, чтобы указать версии зависимостей, а затем укажите эти свойства в зависимостях вашего модуля в gradle.properties androidKotlinVersion=1.7.20 WearKotlinVersion=1.6.10
Версия компилятора Compose тесно связана с версией kotlin. Поскольку вы не можете изменить версию kotlin, вам необходимо изменить версию компилятора compose. Сейчас это 1.1.1
, измените его на 1.3.2
.
Примечание: компилятор compose — это не то же самое, что compose. Их версионность независима именно по этой причине.
Спасибо, я пропустил параметр kotlinCompilerExtensionVersion
в файле wear
gradle, у меня его нет в моем модуле app
Может быть, вы можете попробовать обновить версию Compose до
1.3.2
?