Вызвано: java.lang.NoSuchMethodError: нет статического метода listOf(Ljava/lang/Object;)Ljava/util/List; в классе Lk/v/i; или его суперклассы
Я использую kotlin collections library (listOf, first, toList, etc,..
) в наших AndroidTest
пакет для запуска тестов пользовательского интерфейса с использованием AndroidJunit4 runner
и я сталкиваюсь с ошибками такого типа везде, где имею в виду библиотеку коллекций kotlin.
java.lang.NoSuchMethodError: No static method listOf(Ljava/lang/Object;)Ljava/util/List; in class Lk/v/i; or its super classes (declaration of 'k.v.i' appears
Странно то, что я не вижу проблем ни во время компиляции, ни когда я запускаю тесты независимо на уровне класса. Проблема возникает только тогда, когда я запускаю весь набор тестов с помощью Gradle.
Это команда, которую я использую для запуска набора тестов пользовательского интерфейса с помощью Gradle.
./gradlew connectedCheck --info --full-stacktrace --no-build-cache --debug
Я подозреваю, что классы, которые загружаются во время выполнения, кажутся отличными от времени компиляции.
Вот build.gradle
зависимости
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.71"
// Instrumented Tests
testImplementation "androidx.test:core:1.2.0"
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.ext:junit-ktx:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
defaultConfig {
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}