kotlin - OkHttp:TlsUtil 中的 NoSuchMethodError copyInto

标签 kotlin okhttp

使用 RESTMock 运行仪器测试,我们收到此错误

java.lang.NoSuchMethodError: No static method copyInto$default([Ljava/lang/Object;[Ljava/lang/Object;IIIILjava/lang/Object;)[Ljava/lang/Object; in class Lkotlin/collections/ArraysKt; or its super classes (declaration of 'kotlin.collections.ArraysKt' appears in /data/app/com.example.debug-1/base.apk)
FATAL EXCEPTION: pool-6-thread-1
Process: com.example.debug, PID: 6606
java.lang.NoSuchMethodError: No static method copyInto$default([Ljava/lang/Object;[Ljava/lang/Object;IIIILjava/lang/Object;)[Ljava/lang/Object; in class Lkotlin/collections/ArraysKt; or its super classes (declaration of 'kotlin.collections.ArraysKt' appears in /data/app/com.example.debug-1/base.apk)
    at okhttp3.tls.internal.TlsUtil.newKeyManager(TlsUtil.kt:84)
    at okhttp3.tls.HandshakeCertificates$Builder.build(HandshakeCertificates.kt:144)
    at io.appflate.restmock.SslUtils.localhost(SslUtils.java:49)
    at io.appflate.restmock.RESTMockServer.setUpHttps(RESTMockServer.java:91)
    at io.appflate.restmock.RESTMockServer.init(RESTMockServer.java:74)
    at io.appflate.restmock.RESTMockServerStarter$1.run(RESTMockServerStarter.java:56)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)

这是有问题的行 in OkHttp

IIUC,Kotlin 可以将 varargs 视为 Kotlin 数组,然后调用扩展函数,如 copyInto

我们使用的是 OkHttp 4.0.1、Kotlin 1.3.40、R8 1.5.41

我们的测试 apk 正确包含 copyInto 方法,因此我不认为这是 proguard/R8 问题:

enter image description here

我不知道接下来要测试什么。我在 OkHttp 的 github issuse 页面上询问,他们建议我在这里发帖 link

更新:OkHttp 4.1.0 上仍然发生。我还意识到这不可能是 R8 问题,因为 R8 不会从测试 apk 中删除代码。

最佳答案

我遇到了同样的问题,然后将提到的库添加到我的项目中。它解决了我的问题:

行家:

<!-- https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-stdlib -->
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-stdlib</artifactId>
            <version>1.3.70</version>
        </dependency>

'org.jetbrains.kotlin:kotlin-stdlib:1.3.70'

关于kotlin - OkHttp:TlsUtil 中的 NoSuchMethodError copyInto,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57330923/

相关文章:

android - 如何在从站点下载和解析 XML 文件时一起使用 Retrofit 和 SimpleXML?

android - 在 Kotlin 属性中使用 Dagger @Provides 注解

Android - QR 生成器 API

android - 通过 Hilt 在 Fragment 和 Activity 之外进行现场注入(inject)

java - OKHTTP,带有进度条的调度程序

android - okhttp 中的 java.net.SocketTimeoutException

Kotlin 集合 : Subtracting two nullable list give incorrect result

android - 获取 "Can' t 确定标签 '<macro name="m3_comp_bottom_app_bar_container_color">?attr/colorSurface</macro >'"的类型

android - 如何使用 okhttp3 和 PersistentCookieStore 访问 cookie 并检查它是否已过期?

javax.net.ssl.SSLPeerUnverifiedException : Hostname not verified: