10

我有 3 行代码从 OkHttp3 源获取正文:

val responseBody = response.peekBody(response.body()!!.contentLength())
val source = GzipSource(responseBody.source())
val body = Okio.buffer(source).readUtf8() //issue is that line

在另一台计算机上出现错误:“使用'buffer(Source):BufferedSource'是一个错误。移至扩展功能”

因此,通过将最后一行替换为:

val body = source.buffer().readUtf8()

bun 现在在第一台计算机上出现错误:“未解析的引用:缓冲区”所以我需要恢复该更改。

怎么了?基于错误消息,我无法弄清楚。似乎是gradle配置的问题。但是什么?如何在两台计算机上编译代码。

4

2 回答 2

8

我很难弄清楚,所以我将描述我为“修复它”所做的事情。

他们将 Okio 更改为使用 kotlin 扩展,在此 URL 中您可以找到包含所有更改的更改日志。 https://square.github.io/okio/changelog/#version-200-rc1

就我而言,我试图通过单元测试。

旧的方法是:

val inputStream = javaClass.classLoader.getResourceAsStream("api-response/$fileName")
val source = Okio.buffer(Okio.source(inputStream))

新方法是:

val inputStream = javaClass.classLoader!!
.getResourceAsStream("api-response/$fileName")
.source()
.buffer()
于 2020-02-11T21:04:31.753 回答
7

将实现“com.squareup.okio:okio:2.3.0”添加到您的 build.gradle

于 2019-08-10T01:59:39.833 回答