kotlin 无法访问retrofit2中的responseBody

rseugnpd  于 2023-08-06  发布在  Kotlin
关注(0)|答案(4)|浏览(125)
Cannot access class 'okhttp3.ResponseBody'. Check your module classpath for missing or conflicting dependencies

字符串
这是我的职责:

fun parseError(httpException: HttpException) {
    val errorBody = httpException.response()?.errorBody()
}


这些是我包含的依赖项

implementation("com.squareup.okhttp3:okhttp:4.11.0")
    implementation("com.squareup.moshi:moshi-kotlin:1.15.0")
    implementation("com.squareup.retrofit2:retrofit:2.9.0")
    implementation("com.squareup.retrofit2:converter-moshi:2.9.0")
    implementation("com.squareup.okhttp3:logging-interceptor:4.11.0")


这是图像,因为你可以看到下面有一个错误errorBody()


的数据

qyswt5oh

qyswt5oh1#

编辑答案;
我发现这个改造的2.9.0版本有一个问题。更新到2.8.2版后将修复此问题。

版本.properties文件

第一个月
您可以通过执行2.8.2来使用它。
旧答案;
我认为你的项目是多模块的。你能试着用“API”代替“implementation”吗?
我发表这个评论是因为我看不到更多的细节。
它找不到相关依赖的原因是作为我们项目引用的依赖将第三方依赖暴露在其API表面上。

kxkpmulp

kxkpmulp2#

您缺少一个包含OkHttp3.ResponseBody类的依赖项

implementation 'com.squareup.okhttp3:okhttp:{latest_version}'

字符串
希望这对你有帮助

q3aa0525

q3aa05253#

看起来Retrofit依赖于OkHttp的版本3.14.9,但您正在尝试强制使用更新的版本,特别是4.11.0。请注意,在版本4.* 中,OkHttp库were migrated to Kotlin中的所有类,并且此迁移可能是您遇到的错误的原因。

yduiuuwa

yduiuuwa4#

尝试删除implementation("com.squareup.okhttp3:okhttp:4.11.0")。Retrofit2已经将OkHttp客户端依赖为api

相关问题