Lokhttp3/internal/Util 类中没有静态方法 delimiterOffset

Shu*_*and 7 dependencies android okhttp jitsi jitsi-meet

我正在使用 jitsi 库进行视频连接。第一次安装时它工作正常,但如果用户已经拥有应用程序并从 Play 商店更新它,它就会崩溃。崩溃日志说:

类 Lokhttp3/internal/Util 中没有静态方法 delimiterOffset(Ljava/lang/String;IILjava/lang/String;)I; 或其超类('okhttp3.internal.Util' 声明出现在 base.apk!classes3.dex 中)

有 2 个自动生成的文件:1) okhttp3.JavaNetCookieJar 2) okhttp3.internal.Util。

从 class 中JavaNetCookieJar,在类delimiterOffset(header, pos, limit, ";,")中调用此方法Util

Util类的 delimiterOffset() 方法与调用的方法不兼容:

delimiterOffset(delimiters: String, startIndex: Int = 0, endIndex: Int = length)

delimiterOffset(delimiter: Char, startIndex: Int = 0, endIndex: Int = length)

上面的方法是在类中调用的Util

当我将鼠标悬停在JavaNetCookieJar类上时,它说它来自okhttp3-urlconnection-3.12.1包,当我将鼠标悬停在Util包上时,它说它来自okhttp-4.8.0. 我在用

implementation 'com.squareup.okhttp3:logging-interceptor:4.8.0'

有趣的是,即使我在 gradle 中删除 okhttp3 实现,这两个文件也不会受到影响。

Jes*_*son 9

您必须使用所有 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!
}
Run Code Online (Sandbox Code Playgroud)