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

No static method delimiterOffset in class Lokhttp3/internal/Util

我正在使用 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.

从classJavaNetCookieJar开始,在Utilclass.

中调用了这个delimiterOffset(header, pos, limit, ";,")方法

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

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

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

Util class.

中调用了上述方法

当我将鼠标悬停在 JavaNetCookieJar class 上时,它说它来自 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!
}

检查您的 gradle 是否有此行:

configurations {
    all*.exclude group: 'com.squareup.okio'
    all*.exclude group: 'com.squareup.okhttp3'
}

如果是这样,请将其删除或评论它

configurations {
    //all*.exclude group: 'com.squareup.okio'
    //all*.exclude group: 'com.squareup.okhttp3'
}

现在清理并重建项目。