根据最新的https://developer.android.com/jetpack/androidx/releases/compose-kotlin
我们可以使用
- 编译器版本- 1.4.0
- 兼容Kotlin版本- 1.8.0
然而,在升级到1.4.0和kotlin 1.8.0之后,我得到了下面的错误
我得到了这个错误
Failed to resolve: androidx.compose.ui:ui-tooling:1.4.0
Failed to resolve: androidx.compose.ui:ui-test-manifest:1.4.0
Failed to resolve: androidx.compose.ui:ui:1.4.0
Failed to resolve: androidx.compose.ui:ui-tooling-preview:1.4.0
Failed to resolve: androidx.compose.ui:ui-test-junit4:1.4.0
我错过什么了吗?
是的,androidx.compose.ui
包中用于撰写1.4.0
版本的库尚未发布。
这些库的最新版本是1.4.0-alpha04
。您可以在此页查看版本
撰写编译器和其他撰写依赖有不同的版本。
目前只有compose.compiler
有1.4.0稳定。
为了避免这种问题,你有不同的选择:
使用BOM
撰写物料清单(BOM)允许您通过仅指定BOM的版本来管理所有撰写库版本。BOM本身具有到不同Compose库的稳定版本的链接,这样它们就可以很好地协同工作。
今后,Compose库将独立进行版本控制,这意味着版本号将开始以自己的速度递增。
在这里你可以找到更多关于BOM的信息。
buildscript {
ext {
compose_compiler = '1.4.0' //compiler
}
//...
}
composeOptions {
kotlinCompilerExtensionVersion compose_compiler
}
dependencies {
// Import the Compose BOM
implementation platform('androidx.compose:compose-bom:2022.12.00')
//....
}
或者在构建脚本中使用不同的版本:
buildscript {
ext {
compose_compiler = '1.4.0' //compiler
compose_version = '1.3.x' //compose dependencies
compose_material3 = '1.0.1' //material3 release
}
//...
}
然后:
composeOptions {
kotlinCompilerExtensionVersion compose_compiler
}
dependencies {
// compose releases (1.3.x)
implementation "androidx.compose.material:material:$compose_version"
//...
//material3
implementation "androidx.compose.material3:material3:$compose_material3"
}
不要忘记在模块构建中导入BOM。Gradle (app module)
val composeBom = platform(libs.androidx.compose.bom)
implementation(composeBom)
androidTestImplementation(composeBom)
显然,compose版本和composecomcompiler版本是不同的。
目前,撰写版本在1.4.0-alpha04
buildscript {
ext {
compose_ui_version = '1.4.0-alpha04'
}
}
composeccompiler现在是1.4.0
android {
...
composeOptions {
kotlinCompilerExtensionVersion '1.4.0'
}
}