web-dev-qa-db-ja.com

okhttp:tlsutilのNosuchMethodError Copyinto

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

IIUC、KotlinはKotlinアレイとしてvarargsを扱うことができ、次にCall Extensions関数のような関数を扱うことができます copyinto

私たちはOKHTTP 4.0.1、Kotlin 1.3.40、R8 1.5.41

私たちのテストAPKは正しくcopyIntoメソッドを含みますので、Proguard/R8の問題ではありません。

enter image description here

私は次にテストするものに関して損失しています。私はOkhttpのGithubの発行ページで尋ねました、そして、彼らはここで投稿することを提案した link

更新:まだOKHTTP 4.1.0で起こっています。また、R8がテストAPKからコードを削除しないため、がR8の問題になることはできませんことを実感しました。

8
tir38

私は同じ問題を抱えていました、そして私のプロジェクトに言及しているlibを追加しました。それは私の問題を解決しました:

マヴェン:

<!-- 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'
 _
0
Reza