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 运行测试。

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

请注意在 Android Studio 4.0 中使用这些库去糖类型 不支持插桩测试。

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

但即使是该功能中来自 Google 的嵌入视频也没有说明这一点。也不确定 AS 版本与它有什么关系。也许他们指的是 AGP。​​

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)