我得到一个NoSuchMethodError错误时运行我的Java程序。出了什么问题,我该怎么解决?


当前回答

注意,在反射的情况下,您将得到NoSuchMethodException,而对于非反射代码,您将得到NoSuchMethodError。当我面对其中一种和另一种时,我倾向于去看非常不同的地方。

其他回答

如果使用Maven或其他框架,并且您几乎随机地得到这个错误,请尝试像这样干净地安装…

clean install

如果您编写了对象并且知道它有方法,那么这种方法尤其可能工作。

NoSuchMethodError:我花了几个小时来修复这个问题,最终通过重命名包名来修复它,清洁和构建…尝试清洁构建首先,如果它不工作尝试重命名类名或包名和清洁构建…它应该被修复。祝你好运。

我也有你的问题,我就是这么解决的。下面的步骤是添加库的一种工作方式。我已经正确地完成了前两个步骤,但是我没有完成最后一个步骤,即直接将“.jar”文件从文件系统拖到eclipse项目的“lib”文件夹中。此外,我必须从构建路径和“lib”文件夹中删除之前版本的库。

步骤1 -添加.jar构建路径

步骤2 -关联源和javadocs(可选)

步骤3 -实际拖动。jar文件到“lib”文件夹(非可选)

我在使用Intelij的Gradle项目中遇到了类似的问题。 我通过删除.gradle(见下面的截图)包和重建项目来解决这个问题。 .gradle包

对我来说,这里提到的解决办法没有一个是没用的。

将模拟核从3.3.3更新到3.4.3修复了这个问题。

我认为这是由于MockitoAnnotations.initMock()方法在Mockito JUnit 5 version 3中被弃用并被MockitoAnnotations.openMocks()所取代。

另一方面,检查本地Maven Repository并删除可能导致冲突的不必要的jar可能是值得的。但在使用此步骤时,请注意,不要删除手动安装的(或在操作前备份)。