13

昨天我重构了我的项目并更改了包的布局(我将一些包移动到另一个包中,创建了新包等)。但是现在,当我尝试运行 JUnit 测试时,我会NoSuchMethodError使用重构后更改名称的方法。此外,当我更改方法中的其他代码时,IDEA 仍在运行旧代码。我尝试在文件菜单中运行“无效缓存”,也尝试重新启动计算机 - 没有结果。哪里可能有问题?

编辑:昨天移动包后,IDEA 没有正确更改.java文件中的包声明,所以我手动更改了它们

4

9 回答 9

8

当 Intellij 突然停止注意到更改时,VCS -> Refresh File Status 为我解决了这个问题。

于 2014-10-08T15:14:29.910 回答
4

解决方案:

错误在两件事之后神奇地消失了:

  1. 我将此项目导入 Eclipse 并从 Eclipse 运行 JUNit 测试。然后我返回 IDEA 并删除了所有 Eclipse 特定文件。

  2. 我同步了我的项目(文件->同步)。

我不知道问题的实际解决方案是什么,但对于我接受@SeanLandsman 的回答的建议

于 2013-02-22T10:28:40.607 回答
4

我为了解决这个问题所做的是“无效并重新启动”:

在此处输入图像描述

文件 -> 无效并重新启动

于 2020-10-04T12:11:30.430 回答
3

回答一个老问题,但是:

如果您使用的是运行配置,请确保在“运行/调试配置”对话框的“启动前”部分中添加了“构建”。即使您在默认设置中添加了它,有时它似乎也会从此对话框中删除。

于 2018-02-19T22:37:47.417 回答
2

我有两个建议你可以在这里试试

  • 编辑您的测试配置并确保它们指向您所期望的。我有时会看到在运行配置中没有进行重构,我不得不手动更改它
  • 不太可能工作,但尝试同步您的项目:文件->同步。在项目的最高级别执行此操作

关于您的编辑-我自己还没有看到。每当我重命名或移动文件(包括包)时,这些更改已正确应用于所有适用的文件。您是否使用 Refactor>Move / Refactor->Copy 进行重构?

于 2013-02-22T10:12:44.220 回答
1

删除对我有用的类目录的全部内容

于 2019-11-26T07:38:35.993 回答
0

另一个根本原因可能是:

如果您使用的是 Lombok,请尝试卸载/重新安装 Intellij Lombok 插件。

就我而言,这解决了这种奇怪的行为!

于 2017-09-21T13:24:48.463 回答
0

尝试删除抛出 nosuchmethod 错误的类的 .class 文件,然后重新编译。

于 2018-12-20T10:34:02.497 回答
0

这对我有用。

在 IntelliJ IDEA 中,

  1. 右键单击项目。
  2. 选择 Git -> 显示历史记录。
  3. 打开“版本控制”

然后您可以导航到本地更改选项卡。

于 2020-01-22T10:51:51.073 回答