我正在使用 jitsi 库进行视频连接。第一次安装时它工作正常,但如果用户已经拥有应用程序并从 Play 商店更新它,它会崩溃。崩溃日志说:
No static method delimiterOffset(Ljava/lang/String;IILjava/lang/String;)I in class Lokhttp3/internal/Util; or its super classes (declaration of 'okhttp3.internal.Util' appears in base.apk!classes3.dex)
有 2 个自动生成的文件:1) okhttp3.JavaNetCookieJar 2) okhttp3.internal.Util。
来自类(class)
JavaNetCookieJar
, 这个 delimiterOffset(header, pos, limit, ";,")
方法在 Util
中调用类(class)。Util
类的 delimiterOffset() 方法与调用的方法不兼容:delimiterOffset(delimiters: String, startIndex: Int = 0, endIndex: Int = length)
delimiterOffset(delimiter: Char, startIndex: Int = 0, endIndex: Int = length)
上面的方法在 Util
中被调用。类(class)。当我将鼠标悬停在
JavaNetCookieJar
上时类,它说它来自okhttp3-urlconnection-3.12.1
包,当我将鼠标悬停在 Util
上时包装上说它来自 okhttp-4.8.0
.我在用implementation 'com.squareup.okhttp3:logging-interceptor:4.8.0'
有趣的事实是,即使我在 gradle 中删除 okhttp3 实现,这两个文件也不受影响。
最佳答案
您必须使用所有 OkHttp 依赖项的完全相同的版本。您可以手动配置,也可以使用 BOM 自动完成。
dependencies {
api(platform("com.squareup.okhttp3:okhttp-bom:4.8.0"))
api("com.squareup.okhttp3:okhttp") // No version!
api("com.squareup.okhttp3:logging-interceptor") // No version!
}
关于android - Lokhttp3/internal/Util 类中没有静态方法 delimiterOffset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64351110/