Android coreLibraryDesugaringEnabled, сбой подключенного теста с NoSuchMethodError

я добавил coreLibraryDesugaringEnabled в наше приложение, и он отлично работает для обычных приложений.

        compileOptions {
    coreLibraryDesugaringEnabled true
  }

и

        coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.9'

Однако, когда я запускаю подключенный тест, он вылетает без такой ошибки метода на Stream учебный класс:

      16:03:56.426 11998 12041 E AndroidRuntime: FATAL EXCEPTION: com....
16:03:56.426 11998 12041 E AndroidRuntime: Process: ...
16:03:56.426 11998 12041 E AndroidRuntime: java.lang.NoSuchMethodError: No static method e([Ljava/lang/Object;)Lj$/util/stream/Stream; in class Lj$/util/n; or its super classes (declaration of 'j$.util.n' appears in /data/app/com....-qU6nwXthxze4O_9rcf1hGg==/base.apk!classes2.dex)
16:03:56.426 11998 12041 E AndroidRuntime:  at j$.util.stream.Stream$-CC.of(:1000)
16:03:56.426 11998 12041 E AndroidRuntime:  at ...

Я нашел некоторую расплывчатую ссылку на то, что это может быть связано с тем, что класс упоминается до вызова Multidex.install? Сначала я ссылаюсь на класс как на статический инициализатор, поэтому доступ к нему осуществляется очень рано. Не уверен, что это отвлекающий маневр, но подумал, что упомяну об этом.

Если это поможет, тесты запускаются с AndroidJUnit4ClassRunner.

1 ответ

Эта проблема была исправлена ​​вcom.android.tools:desugar_jdk_libsверсия1.1.8(по меньшей мере).

Другие вопросы по тегам