早上好,我是应用程序开发新手,我正在尝试将 kotlinx.serialization 添加到我的项目中。然而,我在实现它时遇到了困难,因为我的项目在构建时崩溃了。尽管我努力了,但还是没能解决这个问题。
为了提供上下文,我的应用程序利用了 Retrofit。当用户在搜索栏中搜索字母或名字时,它应该返回超级英雄列表。
这是我目前拥有的:
build.gradle.kts(:app):
plugins {
id(libs.plugins.androidApplication)
id(libs.plugins.jetbrainsKotlinAndroid)
id(libs.plugins.hilt)
id(libs.plugins.kapt)
id(libs.plugins.serialization)
}
dependencies {
// Serialization
implementation(libs.kotlinx.serialization.json)
implementation(libs.retrofit2.kotlinx.serialization.converter)
}
libs.versions.toml:
[versions]
kotlin = "1.9.23"
[libraries]
kotlinxSerializationJson = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" }
retrofit2KotlinxSerializationConverter = { module = "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter", version.ref = "retrofit2KotlinxSerializationConverter" }
[plugins]
serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version = "kotlin" }
build.gradle.kts(App):
plugins {
id(libs.plugins.hilt) apply false
id(libs.plugins.kapt) apply false
id(libs.plugins.androidApplication) apply false
id(libs.plugins.jetbrainsKotlinAndroid) apply false
id(libs.plugins.serialization) apply false
}
如果我只留下以下依赖项:
dependencies {
// Serialization
implementation(libs.kotlinx.serialization.json)
implementation(libs.retrofit2.kotlinx.serialization.converter)
}
它可以编译,但是当我在搜索栏中搜索某些内容时遇到此错误: “kotlinx.serialization 无法找到特定类型的序列化器。”但是,我的数据类中有一个
@Serializable
注释。当我将鼠标悬停在 @Serializable
上时,我看到消息:“kotlinx.serialization 编译器插件未应用于该模块,因此不会处理此注释。请确保您已正确设置构建脚本并重新导入该项目。”
谢谢您的帮助。
您的版本目录文件中有此行:
serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version = "kotlin" }
但是参考常见的 Kotlin 版本应该是:
serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }