Kotlinx Serialization集成故障求助:构建崩溃与序列化器找不到问题
解决方案:kotlinx.serialization 插件配置错误修复
你的核心问题是kotlinx.serialization编译器插件未正确生效,同时依赖版本配置存在缺失,导致构建崩溃或运行时找不到序列化器。以下是具体修复步骤:
1. 补全版本定义(libs.versions.toml)
你的libs.versions.toml中缺少kotlinxSerializationJson和retrofit2KotlinxSerializationConverter的版本号定义,这是导致构建崩溃的直接原因。修改后内容如下:
[versions] kotlin = "1.9.23" kotlinxSerializationJson = "1.6.0" # 与Kotlin 1.9.x版本兼容 retrofit2KotlinxSerializationConverter = "1.0.0" [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.ref = "kotlin" }
2. 确认模块插件配置(build.gradle.kts(:app))
保持你当前的模块插件配置不变,确保serialization插件已正确应用:
plugins { alias(libs.plugins.androidApplication) alias(libs.plugins.jetbrainsKotlinAndroid) alias(libs.plugins.hilt) alias(libs.plugins.kapt) alias(libs.plugins.serialization) // 必须保留这行 } dependencies { // Serialization implementation(libs.kotlinx.serialization.json) implementation(libs.retrofit2.kotlinx.serialization.converter) // 其他依赖... }
3. 根项目插件配置(build.gradle.kts)
你的根项目配置是正确的,无需修改:
plugins { alias(libs.plugins.hilt) apply false alias(libs.plugins.kapt) apply false alias(libs.plugins.androidApplication) apply false alias(libs.plugins.jetbrainsKotlinAndroid) apply false alias(libs.plugins.serialization) apply false }
4. 最终修复步骤
- 执行
Clean Project->Rebuild Project(Android Studio菜单栏:Build -> Clean Project,之后Build -> Rebuild Project) - 同步Gradle配置(点击右上角的Sync按钮,或File -> Sync Project with Gradle Files)
- 确认数据类的
@Serializable注解导入正确:import kotlinx.serialization.Serializable,不要导错包
完成以上步骤后,编译器插件会正常处理@Serializable注解,运行时也能找到对应的序列化器,解决"kotlinx.serialization is unable to find a serializer"的错误。
内容的提问来源于stack exchange,提问作者David Ramirez
相关产品推荐
相关产品推荐

