小一時間ハマりました。
Version catalogでKotlin Serializationを管理したかっただけなんですが。。。
OK
gradle/libs.versions.toml
[versions]
kotlin = "1.5.31"
[plugins]
kotlin = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlinserialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
app/build.gradle
plugins {
...
alias(libs.plugins.kotlin)
alias(libs.plugins.kotlinserialization)
}
NG
gradle/libs.versions.toml
[versions]
kotlin = "1.5.31"
[plugins]
kotlin = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
app/build.gradle
plugins {
...
alias(libs.plugins.kotlin)
alias(libs.plugins.kotlin.serialization)
}
これでSync Now
するとエラーが出ます。
A problem occurred evaluating project ':app'.
> Could not find method alias() for arguments [org.gradle.accessors.dm.LibrariesForLibs$KotlinPluginAccessors@11843878] on object of type org.gradle.plugin.use.internal.PluginRequestCollector$PluginDependenciesSpecImpl.
[plugins]
でkotlin
というaliasを使っているのでkotlin.serialization
というaliasがうまく参照できないんじゃないかと思いますが、実際の所はよく分かっていません。。。
最終的な設定
kotlinserialization
だと見づらかったので最終的にはこうなりました。
gradle/libs.versions.toml
[versions]
kotlin = "1.5.31"
[plugins]
kotlin-core = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
app/build.gradle
plugins {
...
alias(libs.plugins.kotlin.core)
alias(libs.plugins.kotlin.serialization)
}
参考