Android Kotlin项目中Retrofit集成Moshi出现KotlinJsonAdapterFactory未解析引用问题排查
嘿,这个问题我之前在做Kotlin Android项目的时候也踩过坑,主要是几个常见的原因导致的,咱们一步步来排查解决:
问题原因与解决方案
1. 核心依赖缺失:没加moshi-kotlin包
KotlinJsonAdapterFactory这个类并不在你配置的moshi-kotlin-codegen里——那个只是用来生成Kotlin数据类适配代码的注解处理器,而运行时需要的Kotlin适配核心类,在单独的moshi-kotlin依赖包中。你现在的配置刚好漏掉了这个关键依赖。
修正后的Gradle依赖配置:
// 基础Moshi核心库 implementation("com.squareup.moshi:moshi:1.12.0") // 关键!包含KotlinJsonAdapterFactory的Kotlin适配库 implementation("com.squareup.moshi:moshi-kotlin:1.12.0") // Kotlin数据类的代码生成处理器 kapt "com.squareup.moshi:moshi-kotlin-codegen:1.12.0" // Retrofit的Moshi转换器,建议版本和Retrofit主库保持一致 implementation "com.squareup.retrofit2:converter-moshi:2.9.0"
2. 忘记导入对应的类
就算加了依赖,如果代码里没导入KotlinJsonAdapterFactory,IDE肯定会报未解析引用的错误。记得在你的代码文件顶部加上这条导入语句:
import com.squareup.moshi.kotlin.KotlinJsonAdapterFactory
3. 依赖版本不兼容
你当前用的converter-moshi:2.5.0版本太老旧了,和moshi:1.12.0的版本跨度太大,很容易出现兼容性问题。建议保持Retrofit相关依赖(包括转换器、CallAdapter等)的版本统一,同时尽量让Moshi版本和转换器版本匹配,这样能避免很多奇怪的问题。
最后做这两步验证
- 点击Android Studio右上角的「Sync Project with Gradle Files」按钮,同步依赖
- 执行「Build -> Clean Project」,再「Build -> Rebuild Project」,彻底清理构建缓存
这样操作下来,KotlinJsonAdapterFactory的未解析引用问题应该就能解决了。
内容的提问来源于stack exchange,提问作者FrensisXh
相关产品推荐
相关产品推荐

