IntelliJ无法解析任何符号或方法。

4

IntelliJ IDEA 2017.2

虽然这个问题之前已经得到了解答,但我还是尝试了所有的修复方法,就像下面所示。

我的Java代码中每个符号都有一个错误“Cannot resolve method”或“Cannot resolve symbol”。不过,代码仍然能够编译和运行,且没有错误。在IDE中出现的错误信息是在第一次打开项目时产生的,在三台电脑上都是如此,但在第四台电脑上却可以正常运行……我找不到任何区别。

我按照这个问题的说明执行了以下步骤:

File -> Invalidate Caches / Restart

I deleted the [IDEA system](https://intellij-support.jetbrains.com/hc/en-us/articles/206544519-Directories-used-by-the-IDE-to-store-settings-caches-plugins-and-logs) directories, and re-imported the Maven project.

I have re-imported the Maven project

I re-imported the project with auto-import

我也遵循了这个问题的指示:

File -> Synchronize

那么

File -> Invalidate Caches / Restart

除了这里提供的解决方案之外:

检查源代码根目录

Ctrl+Alt+Shift+S

在模块源根或模块依赖项中,没有错误或修复。我还尝试了按照这里建议的勾选“递归搜索项目”重新导入。
编辑1 这不是来自我的实际代码的截图,但我的错误看起来与此帖子中的截图相同。 enter image description here 编辑2 我刚发现一个之前没看到的错误。当我打开Project Structure (Ctrl+Alt+Shift+S)时,在Libraries下,我看到以下错误。 enter image description here 我检查了所示位置/home/user/.m2/repository/antlr/antlr/2.7.7/antlr-2.7.7-sources.jar,它不存在。我有antlr-2.7.7.jar,但我不确定是否需要下载antlr-2.7.7.7-sources.jar,还是只需将我的Library指向我有的.jar(因为我不熟悉这些设置)。

你尝试过创建一个新项目吗? - Charlie
你能发布一些截图吗? - John Joe
在编辑中添加。这不是我的代码,但每个文件、每一行具有方法或符号的地方都被用红色下划线标出。 - trueCamelType
@ValerieHouseman mvn clean和install都成功运行了。没有任何问题。 - trueCamelType
@JohnJoe,我认为这不是pom.xml文件的问题,因为我们有另一个开发人员可以在他的IntelliJ中完美运行所有内容而没有错误。话虽如此,我仍然在逐步检查确保pom文件中所有版本实际匹配。 - trueCamelType
显示剩余6条评论
5个回答

4
答案是逐行查看pom.xml文件,看看我缺少哪些依赖项。我以为这是一个配置问题,但事实并非如此。我没有注意到我没有lombok插件,这是我的项目的一个依赖项。在EDIT2中列出的问题实际上不是问题,因为所有类都可用。

1
谢谢。我也遇到了同样的问题。这节省了我很多时间! - amundell

2

由于您使用mvn clean install编译和成功运行了项目,因此您知道您的POM是有效的。

鉴于此,我建议:

  1. 关闭IntelliJ
  2. 删除每个模块的.idea目录和任何*.iml, *.ipr文件。不用担心,IntelliJ会重新创建它们。如果您确实关心,请通过重命名对其进行备份。
  3. 打开IntelliJ并找到新项目向导。
  4. 找到从现有maven项目导入的选项。
  5. 选择根项目的POM文件。

1

检查模块设置是否正确。打开项目结构 (Ctrl+Alt+Shift+S),并检查源代码目录设置下的 Source 标签是否有效。


请检查您是否已安装相应的依赖项,同时检查Java版本和语言设置。@trueCamelType - Anil Kumar Athuluri
@trueCamelType 很高兴你在项目结构中找到了问题。如果我的回答对你有帮助,请点赞并接受它。 - Anil Kumar Athuluri
感谢您帮助我找到错误。我仍然不确定如何解决这个问题。肯定会点赞的。 - trueCamelType
在库中没有Alt+Enter选项,但在实际代码的错误中,它会询问是否要创建已经存在的类/方法/符号。 - trueCamelType
2
@trueCamelType 查看 > 工具窗口 > Maven 项目 - Anil Kumar Athuluri
显示剩余7条评论

0

这是一个奇怪的问题。我遇到了相同的问题,并阅读了stackoverflow和其他论坛上所有的问题,并采用了所有建议,甚至重新安装了IntelliJ。

然而,在我的情况下问题是我排除了一些文件,即.gradle和build文件夹,这听起来肯定很重要。我可能已经将它们排除在Git状态通知之外,但不知何故,我将其从项目中排除了,因为我是Intellij的新手。要检查是否有任何排除的文件夹,请前往->模块CTRL + Shift + Alt + s,并检查是否有任何红色项,您应该在此处包括必要的项。

希望这能帮助到你们中的一些人。


-1

你正在使用Maven项目,删除.m2文件夹并更新Maven项目,然后清理项目并重新构建和运行它...有时Maven项目会出现这种问题,通过重新构建项目来解决。还要检查依赖项的版本。


5
糟糕的建议,因为它会毁掉settings.xml。在极少数情况下,如果需要进行清理,只需删除~/.m2/repository即可。 - chrylis -cautiouslyoptimistic-

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接