Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何对java.lang.NoSuchMethodError进行故障排除:java.util.Map.entry(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map$entry_Java_Android - Fatal编程技术网

如何对java.lang.NoSuchMethodError进行故障排除:java.util.Map.entry(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map$entry

如何对java.lang.NoSuchMethodError进行故障排除:java.util.Map.entry(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map$entry,java,android,Java,Android,尝试对在类中构建静态映射的类进行单元测试,如下所示: private static Map=new HashMap(); 静止的{ MAP=MAP.of入口( Map.entry(SOME_键,new SomeClass()), . . . 条目(SOME_键,new SomeClass()) ); } 在构建类的过程中初始化映射时,我得到以下错误: java.lang.NoSuchMethodError: java.util.Map.entry(Ljava/lang/Object;Ljava

尝试对在类中构建静态映射的类进行单元测试,如下所示:

private static Map=new HashMap();
静止的{
MAP=MAP.of入口(
Map.entry(SOME_键,new SomeClass()),
.
.
.
条目(SOME_键,new SomeClass())
);
}
在构建类的过程中初始化映射时,我得到以下错误:

java.lang.NoSuchMethodError: java.util.Map.entry(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map$Entry;

at package.ClassContainingMap.<clinit>(ClassContainingMap.java:36).
java.lang.NoSuchMethodError:java.util.Map.entry(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map$entry;
位于package.ClassContainingMap.(ClassContainingMap.java:36)。
我在上看到了一篇关于解决此错误的类似帖子,并尝试在一个地方按照建议进行清理和重建,但没有效果。接受的回答表明,可能会使用一个单独的库版本来编译和运行代码,但我不知道如何理解,因为我对Android和Java开发相对较新。我应该注意到,应用程序是使用desugaring构建的,以允许使用一些较新的功能,并且不确定这是否与某些容量的功能相关


提前感谢。

这似乎与脱糖有关。Android使用的Java8和Java7中也没有
Map.entry()方法。

NoSuchMethod
错误告诉您该方法不存在。这通常意味着您在运行时使用了错误版本的库

当您的工作环境与应用程序运行的环境不一致时,就会发生这种情况。在这种情况下,如果你工作 如果在运行时使用相同的库,您的项目将无法编译

因为这是JDK中的一个方法,并且是从JDK9开始引入的,所以如果您使用JDK的早期版本来运行代码,那么它将无法工作

请参阅javadoc:

它说:

自:9


如果我错了,请纠正我,但是如果在Java平台SE 7的文档中,这意味着它是Java 7的一部分?这是类
Map.Entry
,而不是静态方法
Map.Entry()
。您可以在中查看该方法的文档。哦,哇!看来我看错了文件。想知道为什么编译器没有对此犹豫不决。。。谢谢我以为这是在Java7中引入的?不,Java9:明白了。谢谢。没问题,请你把我的答案标为正确答案好吗?我好像没法这样做。说我没有足够的声誉来记录我的投票。