IntelliJ IDEA在代码完成中显示已删除的文件和包

时间:2017-08-15 10:53:14

标签: android-studio intellij-idea code-completion

我已经改变了项目包的结构。我创建了新包,将一些文件移动到新包中,并删除了文件所在的空包。

现在问题是代码完成显示了一些文件两次,有新的正确版本和旧版本的旧版本。 让我举例说明:

  1. 我有一个班级(档案)" ButtonBuilder"在包" component.builders.gui"。然后我移动了" ButtonBuilder"进入包" component.builders.gui.button"。当我现在键入某个地方" ButtonBuilder"代码完成建议两个版本,第一个是" ButtonBuilder(component.builders.gui)"第二个是" ButtonBuilder component.builders.gui.button)",但没有名为" ButtonBuilder"的文件/类。在" component.builders.gui"。

  2. 第二个例子类似,当我输入" DefaultPhysicComponent"代码完成提供了两个选项," DefaultPhysicComponent(component.components.physic)"和" DefaultPhysicComponent(components.physicComponents)"。第一个是正确的,但第二个不存在。类/文件" DefaultPhysicComponent"最初是在" components.physicComponents",然后我创建了新的包" component.components.physic",将文件移到那里并删除旧包。现在甚至没有包#34; physicComponents",但代码完成提供了这两个选项。

  3. 还有其他文件和包具有相同的问题。所以IDE"思考"旧包和文件仍然存在。这也导致了进口的另一个问题。当我导入例如

    import component.builders.gui.button。*;

    import component.builders.gui。*;

    IDE表示引用" ButtonBuilder"是不明确的,但如上所述只存在一个文件/类" ButtonBuilder"。

    有谁知道如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

File > Preferences > Compiler下检查此选项:"在重建时清除输出目录"被选中。

然后使用Build > Rebuild Project

重建项目

如果此后问题仍然存在,则使用File > Invalidate Caches / Restart使缓存无效,然后点击Invalidate按钮。

答案 1 :(得分:0)

为了删除不存在的文件(但仍被检测为无法解析的文件),您可以通过Mercurial尝试以下解决方案:

hg resolve -all [验证检测为未解析的文件(用U标记的文件)] 然后对每个未解析和不存在的文件执行 hg解析文件路径(+选择“ d”将其删除)