5

我添加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

编辑:我发现了一个模糊的参考,只有一篇文章指出这在仪器测试中不受支持:

请注意,在 Android Studio 4.0 中,不支持在检测测试中使用这些库脱糖类型。

https://medium.com/androiddevelopers/support-for-newer-java-language-apis-bca79fc8ef65

但即使是来自谷歌的嵌入视频也没有说明这一点。也不确定 AS 版本与它有什么关系。也许他们的意思是AGP。

4

0 回答 0