Kotlin を 1.7.21 から 1.8.0 に上げます。
[versions]
# kotlin = "1.7.21"
kotlin = "1.8.0"
compose-compiler = "1.4.0-alpha02"
build します。
はい、エラーでました。
e: This version (1.4.0-alpha01) of the Compose Compiler requires Kotlin version 1.7.21
but you appear to be using Kotlin version 1.7.21 which is not known to be compatible.
Please fix your configuration (or `suppressKotlinVersionCompatibilityCheck` but don't say I didn't warn you!).
https://developer.android.com/jetpack/androidx/releases/compose-kotlin#pre-release_kotlin_compatibility
表示されてるリンクに行きます。
はい、Kotlin 1.8 ありません。
👉 Compose to Kotlin Compatibility Map | Android Developers
さらに、そのページにあるリンク先へ。
ここにありますね。
👉 Compose Compiler Maven Index
さらに、このページにあるリンク先の記述を参考に変更します。
# libs.versions.toml
[versions]
# kotlin = "1.7.21"
# compose-compiler = "1.4.0-alpha02" # composeOptions ↔ kotlin 1.7.21
kotlin = "1.8.0"
compose-compiler = "1.4.0-dev-k1.8.0-33c0ad36f83"
// settings.gradle
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven {
url "https://androidx.dev/storage/compose-compiler/repository/"
}
// build.gradle (:app)
composeOptions {
kotlinCompilerExtensionVersion libs.versions.compose.compiler.get()
}
This version (1.2.0-alpha08) of the Compose Compiler requires Kotlin version 1.6.20 but you appear to be using Kotlin version 1.6.21 which is not known to be compatible. https://t.co/QMUcNgdtaI #kotlin #android #jetpackcompose #プログラミング
— chanzmao (@maochanz) May 19, 2022
■ まとめ
Kotlin バージョンと Compose Compiler のバージョンは密接に関係しています。
ちなみに、Compose UI 側のバージョンは以前のままの alpha03 (現最新) で、まあまあ良さげです。
[versions]
kotlin = "1.8.0"
compose-compiler = "1.4.0-dev-k1.8.0-33c0ad36f83"
compose-ui = "1.4.0-alpha03"
[libraries]
compose-ui = { module = "androidx.compose.ui:ui", version.ref = "compose-ui" }
compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "compose-ui" }
compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview", version.ref = "compose-ui" }
compose-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest", version.ref = "compose-ui" }
compose-ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4", version.ref = "compose-ui" }