如何使用Version Catalog文件声明Kotlin Compose Compiler版本
正确配置方式
你遇到的问题是因为直接对libs.versions.kotlinComposeCompiler做字符串插值导致的——它本质是一个Provider<String>对象,直接插值会得到类似provider(?)的字符串,而非实际版本号,这才让Gradle找不到对应版本的依赖。
以下是两种正确的配置方式:
方式一:仅在versions块定义版本,直接调用get()获取版本号
libs.versions.toml
[versions] kotlinComposeCompiler = "1.5.11"
build.gradle.kts (:app)
composeOptions { kotlinCompilerExtensionVersion = libs.versions.kotlinComposeCompiler.get() }
方式二:在libraries块定义完整依赖(可选,更规范)
如果希望统一管理Compose Compiler的依赖坐标,也可以在toml中补充定义library:
libs.versions.toml
[versions] kotlinComposeCompiler = "1.5.11" [libraries] androidx-compose-compiler = { group = "androidx.compose.compiler", name = "compiler", version.ref = "kotlinComposeCompiler" }
build.gradle.kts (:app)
// 先确保依赖引入(如果之前没加的话) dependencies { implementation(libs.androidx.compose.compiler) } composeOptions { // 依然通过version引用版本号 kotlinCompilerExtensionVersion = libs.versions.kotlinComposeCompiler.get() }
注意:composeOptions里的kotlinCompilerExtensionVersion必须填版本号字符串,所以无论哪种方式,最终都需要调用get()来获取Provider中的实际版本值。
内容的提问来源于stack exchange,提问作者Roman
相关产品推荐
相关产品推荐

