kotlinx-serialization @Serializable未生效:模块编译插件未应用问题
解决Ktor项目中kotlinx.serialization插件未生效问题
针对你遇到的@Serializable注解未被处理、运行时找不到序列化器的问题,可按以下步骤排查修复:
确认版本完全匹配
检查项目根目录gradle.properties中的kotlin_version值是否与build.gradle.kts中声明的版本一致(当前应为1.9.0)。序列化插件版本必须和Kotlin版本严格对应,版本不匹配会直接导致插件无法正常工作。强制同步Gradle并清理缓存
- 点击IDE右上角Gradle面板的「Sync Project with Gradle Files」按钮,重新同步项目
- 在终端执行命令清理构建缓存并重新构建:
./gradlew clean build --refresh-dependencies - 清理IDE缓存:依次点击
File -> Invalidate Caches...,勾选「Clear file system cache and local history」后重启IDE
检查注解导入正确性
确保Message类导入的是kotlinx序列化的注解,而非Java自带的序列化注解:import kotlinx.serialization.Serializable // 正确导入 // 避免错误导入 import java.io.Serializable确认插件应用到目标模块
如果是多模块项目,kotlin("plugin.serialization")必须添加到包含Message类的模块的build.gradle.kts中,不能仅在根模块配置。验证序列化调用方式
确保你使用的是kotlinx序列化官方的Json实例:import kotlinx.serialization.json.Json // 正确调用示例 val message = Json.decodeFromString<Message>(messageString)
内容的提问来源于stack exchange,提问作者ryandyoon
相关产品推荐
相关产品推荐

