Unable to create converter for xxx.NetworkResponse<Auth> for method AuthService

BUG解决要点

  • @POST + @Body 必须写

  • NetworkResponse<T> 必须是 @Serializable data class

  • Auth 必须 @Serializable

  • 不要用 sealed / Any

哪怕 Auth 是 @Serializable,只要 NetworkResponse 有下面任意一条,就一定失败:

  • ❌ 没有 @Serializable
  • ❌ 是 sealed class
  • ❌ 是 open class
  • ❌ 有 Any / Map<String, Any>
  • ❌ 泛型 T 没有限定
  • ❌ 有自定义构造逻辑

Retrofit 会在创建接口代理时直接抛这个异常。

gradle(非常关键,很多人漏)

js 复制代码
dependencies {
    implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")
    implementation("com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:0.8.0")
}
js 复制代码
plugins {
    id("org.jetbrains.kotlin.plugin.serialization")
}

代码示例

如果是Body的JSON请求,必须添加**@Body**

kotlin 复制代码
interface AuthService {

    @POST("login/password")
    suspend fun loginByPassword(
        @Body params: Map<String, String>
    ): NetworkResponse<Auth>
}
kotlin 复制代码
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class NetworkResponse<T>(
    @SerialName("code")
    val code: Int,

    @SerialName("message")
    val message: String,

    @SerialName("data")
    val data: T? = null
)
kotlin 复制代码
import kotlinx.serialization.Serializable

@Serializable
data class Auth(
    val token: String,
    val refreshToken: String,
    val expire: Long
)

根因是 kotlinx.serialization 无法为 NetworkResponse 生成 Serializer

相关推荐
谢慧琼18 分钟前
2026零基础做企业网站,低成本搭建官方网站
服务器·前端·javascript
weixin_431600441 小时前
前端数据埋点(1):一次点击如何变成一条埋点
前端·js·数据埋点
IT_陈寒2 小时前
Python线程池吞了异常还不告诉我,这谁顶得住啊
前端·人工智能·后端
小强库计算机毕业设计2 小时前
SpringBoot+Vue3 学生宿舍管理系统实战
java·spring boot·后端·vue·学生宿舍管理系统
小狼1832 小时前
实践6|SDD 实战:AI 写的规格被推翻了四次
后端·claude
篮框坏了2 小时前
"DeepSeek Harness 实测:一毛钱干三活,但默认配置是个坑"
后端·ai编程
计算机魔术师2 小时前
同样是AI辅助建造,为什么有的游戏三个月就烂尾了?
前端
jobBridge212 小时前
大模型到底是怎么"想"的?我把 Transformer 拆开,发现它其实是个"接词狂魔"
人工智能·后端·编程语言
用户921080262862 小时前
0. 做 Agent 产品,前端 AI 组件框架怎么选?
前端
唐青枫3 小时前
看懂内存地址之后,才算真正入门 Zig:指针、切片与实战
后端