Exécution des tests d'instrumentation avec RESTMock
Nous obtenons cette erreur
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)
Ceci est la ligne en question dans OKHTTP
IIUC, Kotlin peut traiter un varargs
comme une matrice de kotlin, puis appellez des fonctions d'extensions telles que COYINTO
Nous sommes sur Okhttp 4.0.1, Kotlin 1.3.40, R8 1.5.41
Notre test APK contient correctement copyInto
méthode, donc je ne pense pas que ce soit un problème de proguard/R8:
Je suis à perte de quoi tester ensuite. J'ai demandé sur la page GitHub Issuse de Okhttp et ils ont suggéré de publier ici link
Mise à jour: toujours sur OKHTTP 4.1.0. Aussi, j'ai réalisé que cela ne peut pas être un problème R8 depuis R8 ne supprime pas le code de Test APK.
J'ai eu un même problème, puis j'ai ajouté la mention de la liberme à mon projet. Cela a résolu mon problème:
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>
ou
'org.jetbrains.kotlin:kotlin-stdlib:1.3.70'