使用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)这是问题中的在OkHttp中行
,Kotlin可以将varargs看作一个Kotlin数组,然后调用像copyInto这样的扩展函数。
OkHttp 4.0.1,Kotlin 1.3.40,R8 1.5.41
我们的测试apk正确地包含了copyInto方法,因此我不认为这是proguard/R8问题:

我不知道下一步该测试什么。我在OkHttp的github问题页面上询问,他们建议我在这里发布链接
更新:仍然发生在OkHttp 4.1.0上。另外,我意识到这不可能是R8问题,因为R8不会从测试apk中删除代码。
发布于 2020-03-23 10:17:58
我也有同样的问题,然后在我的项目中添加了提到的库。它解决了我的问题:
maven:
<!-- 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'发布于 2019-09-12 13:33:26
当我使用带有来自okhttp3.mockwebserver.MockWebServer的服务器证书的https启用的okhttp-tls时,我也遇到了同样的问题。
在我的例子中,问题在于,仅仅通过导入com.squareup.okhttp3:okhttp-tls:4.2.0依赖项,org.jetbrains.kotlin:kotlin-stdlib就被解决为1.2.71版本。
考虑到引入了copyInto方法,启动kotlin 1.3,它失败时的错误与您的错误相同。
我通过在我的gradle.build文件中显式地添加kotlin版本来修正它:
testRuntime 'org.jetbrains.kotlin:kotlin-stdlib:1.3.50'
发布于 2021-11-02 03:38:14
我也遇到了同样的问题,但我正在开发一个多模块的java项目。当单元测试时,在属于这个模块的kotlin-stdlib中为pom.xml添加一个依赖项是很有用的.
当我启动整个项目时,这个问题就出现了。最后,我发现这个依赖关系需要在整个项目的pom.xml中,我指的是项目根dir中的pom.xml。
https://stackoverflow.com/questions/57330923
复制相似问题