Я перенес свой Gradle в каталог версий и хочу также переместить компилятор Kotlin Compose в libs.versions.toml.
Это мое текущее объявление в приложении Gradle:
composeOptions {
kotlinCompilerExtensionVersion = "1.5.11"
}
Я пытался сделать это вот так
libs.versions.toml
[versions]
kotlinComposeCompiler = "1.5.11"
build.gradle.kts (:приложение)
composeOptions {
kotlinCompilerExtensionVersion = "${libs.versions.kotlinComposeCompiler}"
}
Но мой проект иногда не синхронизируется с этой ошибкой:
Не удалось найти androidx.compose.compiler:compiler:provider(?).
Как правильно объявить версию расширения компилятора Kotlin с помощью каталога версий?
Похоже, вы правильно настроили каталог версий. При этом генерируется некоторый код, включающий свойство libs.versions.kotlinComposeCompiler типа Provider<String> (нажмите на него в своей IDE, чтобы посмотреть).
Поставщик — это тип Gradle, который представляет собой оболочку версии, предназначенную для облегчения ленивой инициализации, хотя здесь это неприменимо.
Чтобы получить нужную вам версию String изнутри Provider, вы просто вызываете get(), и в итоге вы получаете:
composeOptions {
kotlinCompilerExtensionVersion = libs.versions.kotlinComposeCompiler.get()
}