在Intellij的Java项目中获取“找不到符号”

时间:2012-08-26 16:50:34

标签: java intellij-idea

我从类“GameManager.java”中调用静态单例实例。

HUD.getInstance().update(timeDelta);

HUD.java包含HUD类以及其他两个相关类,HUDTextElement和HUDElement。所有类都在相同的根路径中./ src / org / mypackage

然而,当在IntelliJ中编译这个java项目时,我在“HUD.getInstance()”调用的行上“找不到符号HUD”。

这个完全相同的代码在eclipse中编译得很好,任何想法是什么问题?

28 个答案:

答案 0 :(得分:89)

选择Build-> Rebuild Project将解决它

答案 1 :(得分:52)

我有同样的问题,结果我从未完全编译过新项目。所以右键单击并选择Compile''(在mac上的shift-cmd-F9)修复它。似乎save上的编译没有“看到”非编译文件。

在我的情况下,将src文件夹标记为源是不是帮助。

答案 2 :(得分:29)

我遇到了同样的问题并通过点击文件> Invalidate caches / restart

修复了它

答案 3 :(得分:24)

这可能是您的../src文件夹未在Intellij IDEA中标记为“源”文件夹,因此它不知道在那里找到您的类。您可以右键单击项目资源管理器中的文件夹,然后选择“标记为源文件夹”来解决此问题。

答案 4 :(得分:18)

当我Build -> Make Project时,我得到了相同的“找不到符号”错误。我通过删除我的Maven /target文件夹,右键单击我的项目模块并执行Maven -> Reimport并执行Build -> Rebuild Project来解决此问题。这是在IntelliJ Idea 13.1.5上。

事实证明Maven -> Reimport是关键所在,因为在我最终解决问题之前问题再次出现了几次。

答案 5 :(得分:12)

感谢您的帮助到目前为止,事实证明修复是首先编译HUD.java(右键单击文件 - >编译HUD.java)。在编译java文件之后,可以编译项目的其余部分而没有任何问题。

我真的不知道为什么修复它,或者为什么IntelliJ不会自动执行此操作,但root错误似乎与IntelliJ无法正确处理在单个.java文件中有多个类。

答案 6 :(得分:5)

我在项目中使用maven。出于某种原因,IntelliJ给了我这些奇怪的错误。我运行mvn clean并尝试重新同步,这些错误消失了。

答案 7 :(得分:3)

我遇到了同样的问题,答案中给出了很多解决方案,尝试所有这些解决方案都花了我很多时间,所以如果您遇到此错误,在这里我想提出一种有条理的方法。

检查以下内容,如果缺少某些内容,请创建/更新

  1. src文件夹被标记为源文件夹
  2. .imls文件存在
  3. 启用注释处理
  4. 如果您最近使用过@UtilityClass,那么也可能是原因,Bug Link

如果一切正常,您可以尝试按给定顺序执行以下解决方案

  1. 重新编译文件/模块

  2. 如果这不能解决问题,请尝试刷新Maven依赖项并使用Maven -> ReimportBuild -> Rebuild Project

    构建项目
  3. 尝试mvn clean install -DskipTests

  4. 尝试使用File > Invalidate caches/ restart

    使IntelliJ缓存无效并重新启动IDE。
  5. 删除.idea文件夹并重新导入项目

感谢。感谢所有回答此问题的人,您可以参考他们的回答以获取关于每个点的更多描述。

答案 8 :(得分:3)

当我删除一个文件夹然后将其复制粘贴到项目中时,这发生在我身上。

Right-click project folder -> Rebuild为我工作。

答案 9 :(得分:2)

我知道这是一个老问题,但根据我最近的经验,这是因为构建资源被删除或者Idea无法将它们识别为源。

无论错误出现在哪里,都要提供文件夹/目录的来源,并且必须解决此错误。

有时即使我们为整个文件夹分配源,个别类仍可能不可用。对于新手用户来说,简单的解决方案是导入一个新的副本并再次构建应用程序,以便更好。

建议在此之后进行全新安装。

答案 10 :(得分:2)

我必须右键单击该项目,然后在“运行Maven”子菜单下选择“重新导入”。

答案 11 :(得分:2)

重新编译Application.java主类对我有用,右键单击class> Recompile

答案 12 :(得分:2)

对我来说,Lombok存在问题,因为它需要启用注释处理。您可以在Settings > Build > Compiler > Annotation Processors

上找到此复选框

答案 13 :(得分:1)

如果您使用的是Lombok,请确保已启用注释处理。

答案 14 :(得分:0)

对我来说,错误来自 <jndiEntry jndiName="url/tidal-api" value="${tidal.url}" id="TidalJNDI" /> ,消息是 @RequiredArgsConstructor(onConstructor = @__(@Inject))。正上方的错误消息是“java:您没有使用 lombok 支持的编译器,因此 lombok 将无法工作并已被禁用”。

在 VM 选项中添加下面的参数按照建议 here 对我有用。

cannot find symbol __

答案 15 :(得分:0)

有一次 Maven ReimportRebuild Project使缓存无效 没有帮助我删除了子文件夹 artifacts 和 {{1 }} 来自 .idea 文件夹,而不是整个文件夹,所以我保存了自定义项目设置。

答案 16 :(得分:0)

我尝试了所有方法,但没有任何效果。所以,在浪费了几个小时之后,我决定升级 IntelliJ 的想法版本,终于成功了!

答案 17 :(得分:0)

这对我有用,比如说 A 类依赖于 B 类(以及 C 类、d 类等),但是错误抛出到没有任何错误的 A 类上。所以我尝试首先单独编译A类->它在B类的上显示错误。所以试图编译 B 类的整个包。现在它抛出确切的错误类(在我的情况下 B 类有错误)。通常 Intellj 在编译/构建时显示带有行号的确切错误类。在某些情况下,它会在错误的地方/类中引发错误。试试看。

答案 18 :(得分:0)

就我而言,我在从另一个模块中查找类时遇到问题。在pom.xml中,我仅指定了<scope>compile</scope>就具有了这种依赖性。删除该行很有帮助。

答案 19 :(得分:0)

我看到了很多建议进行构建或重新构建的答案,但是如果万一这不能解决您的问题,请注意,IDEA可以检测到一个方法,但是如果您有{{ 1}},因为它将期望实例。

enter image description here

答案 20 :(得分:0)

对我来说-我尝试了这些步骤(使缓存无效并重新启动,Maven重新导入),但是它们没有用。因此,我删除了std::bitset.idea.settings文件夹,并尝试了-它起作用了。

答案 21 :(得分:0)

我知道这个线程很旧,但是,另一个解决方案是运行

if(this.un.value == "username") {
  this.un.value = null;    // <-- This does nothing
}

然后在IntelliJ上执行CMD + Shift + A(mac os)->输入“重新导入所有Maven项目”。

如果这不起作用,请尝试强制重新下载Maven依赖项

$ mvn clean install -Dmaven.test.skip=true

答案 22 :(得分:0)

就我而言,问题是在Intellij Idea的java项目中使用Lombok的实验功能@UtilityClass将类方法注释为“静态”。当我将类的每个方法显式设置为“静态”而不是使用批注时,所有编译问题都消失了。

答案 23 :(得分:0)

我遇到了同样的问题,只是我正在导入依赖项无法解决的类。我刷新了Maven项目,即Rebuild Project。它仍然没有解决。 看起来IntelliJ缓存不正确。 我重新启动了IntelliJ,并解决了依赖性。我想它以某种方式清除了缓存。

答案 24 :(得分:0)

有时您想要的课程位于test源目录中。无论如何......发生在我身上......

答案 25 :(得分:0)

确保您尝试引用的java类的源文件具有.java扩展名。在我的情况下是.aj(我必须点击&#34;创建方面&#34;而不是&#34;创建类&#34;创建它时)。 IntelliJ为此文件显示的图标与&#34; normal&#34;相同。 class,但编译器在构建时没有看到它。

.aj更改为.java修复了我的问题。

答案 26 :(得分:0)

由于这是Google搜索“intelliJ无法找到符号”错误的第一次打击,我也会投入我的解决方案。

我的问题是我的项目源自Eclipse,有些文件包含依赖于src/generated-sources中pom.xml中的规范生成的类。出于某种原因,当我第一次打开项目并且重建/重新导入没有帮助时,这没有正确执行,因此从未生成文件。

解决方案是右键单击模块,然后选择Maven -> Generate Sources and Update Folders解决了问题,我可以编译。

答案 27 :(得分:-1)

我知道这已经过时了,但是对于其他任何人来说,请确保缺少的课程与您收到错误的课程所在的课程相同/来自您的课程。