Android coreLibraryDesugaringEnabled,连接测试崩溃和 NoSuchMethodError

Android coreLibraryDesugaringEnabled, connected test crash with NoSuchMethodError

提问人:Jeffrey Blattman 提问时间:2/10/2021 最后编辑:Jeffrey Blattman 更新时间:11/18/2022 访问量:491

问:

我添加到我们的应用程序中,它适用于正常的应用程序运行。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 版本。

android android-测试 JDK-脱糖

评论


答:

0赞 Jeffrey Blattman 11/18/2022 #1

此问题已在版本中修复(至少)。com.android.tools:desugar_jdk_libs1.1.8