138

我从类中调用了一个静态单例实例GameManager.java

HUD.getInstance().update(timeDelta);

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

但是,在 IntelliJ 中编译这个 java 项目时,我在拨打电话的那一行找不到 Symbol HUDHUD.getInstance()

这个完全相同的代码在eclipse中编译得很好,知道问题是什么吗?

4

29 回答 29

234

选择 Build->Rebuild Project 将解决它

于 2016-12-10T05:34:26.023 回答
74

我有同样的问题并通过单击文件>使缓存无效/重新启动来修复它

于 2016-05-10T10:03:18.723 回答
57

我遇到了同样的问题,结果我从未完全编译过新项目。因此,右键单击并选择 Compile''(mac 上的 shift-cmd-F9)修复它。似乎保存时编译不会“看到”非编译文件。

在我的情况下,将 src 文件夹标记为源并没有帮助。

于 2013-03-06T09:13:30.087 回答
33

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

于 2012-08-26T16:54:27.123 回答
32

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

事实证明这Maven -> Reimport是关键,因为在我最终这样做之前,问题又出现了几次。

于 2014-10-13T18:43:10.177 回答
13

对我来说 - 我尝试了这些步骤(无效缓存和重新启动,Maven 重新导入))但它们没有用。所以我删除了.idea,.settings.project文件夹并尝试了 - 它有效。

于 2019-10-25T22:38:12.860 回答
12

感谢到目前为止的帮助,原来修复是首先编译 HUD.java(右键单击文件-> 编译 HUD.java)。编译完 java 文件后,项目的其余部分可以毫无问题地编译。

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

于 2012-08-26T18:09:59.697 回答
10

我遇到了同样的问题,答案中给出了很多解决方案,尝试所有这些解决方案花了我相当长的时间,所以如果你遇到这个错误,我想在这里提出一个有条不紊的方法。

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

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

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

  1. 重新编译文件/模块

  2. 如果这不能解决问题,请尝试刷新 maven 依赖项并使用Maven -> Reimport和构建项目Build -> Rebuild Project

  3. 尝试mvn clean install -DskipTests

  4. 尝试使 IntelliJ 缓存无效并重新启动 IDE,使用File > Invalidate caches/ restart

  5. 删除 .idea 文件夹并重新导入项目

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

于 2020-06-18T11:10:32.810 回答
8

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

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

于 2019-08-09T08:25:54.143 回答
7

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

于 2018-09-19T19:58:18.990 回答
6

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

于 2013-04-25T19:58:51.260 回答
3

重新编译主 Application.java 类为我做了,右键单击类>重新编译

于 2019-01-20T06:28:19.677 回答
3

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

于 2020-02-03T15:46:49.037 回答
3

对我来说,Lombok 有一个问题,因为它需要启用注释处理。您可以在以下位置找到此复选框Settings > Build > Compiler > Annotation Processors

于 2020-02-27T09:09:44.283 回答
2

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

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

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

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

于 2014-07-14T15:41:15.227 回答
2

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

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

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

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

$ mvn clean -U install -Dmaven.test.skip=true
于 2019-07-19T13:23:23.643 回答
2

我通过右键单击 Java 文件夹和重建解决了这个问题

IntelliJ 截图

于 2021-11-22T12:01:11.040 回答
1

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

于 2018-10-02T20:20:42.997 回答
0

有时你想要的类在test源目录中。反正发生在我身上……</p>

于 2017-02-07T01:15:19.330 回答
0

确保您尝试引用的 java 类的源文件具有.java扩展名。就.aj我而言(我必须在创建它时点击“创建方面”而不是“创建类”)。IntelliJ 显示此文件的图标与“普通”类相同,但编译器在构建时看不到它。

在我的情况下更改.aj.java修复它。

于 2016-06-14T21:23:22.940 回答
0

Once when Maven Reimport, Rebuild Project, Invalidate caches didn't help I deleted subfolders artifacts and libraries from .idea folder, not whole one, so I saved custom project settings.

...and when nothing written here helps check idea.log file as posted here

于 2021-03-04T18:04:21.100 回答
0

由于这是谷歌搜索“intelliJ 找不到符号”错误的第一次点击,我也将提出我的解决方案。

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

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

于 2016-05-30T09:10:48.007 回答
0

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

于 2018-08-20T13:52:30.910 回答
0

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

于 2021-01-23T13:43:15.890 回答
0

就我而言,我在从另一个模块中查找类时遇到了问题。在pom.xml中,我只是<scope>compile</scope>指定了这个依赖项。删除这条线有帮助。

于 2020-03-24T14:52:23.747 回答
0

对我来说,错误来自@RequiredArgsConstructor(onConstructor = @__(@Inject)),消息来自cannot find symbol __。上面的错误消息是“java:您没有使用 lombok 支持的编译器,因此 lombok 将无法工作并且已被禁用”。

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

-Djps.track.ap.dependencies=false
于 2021-05-20T01:31:58.150 回答
0

我尝试了一切,但对我没有任何帮助。所以,在浪费了几个小时之后,我决定升级 IntelliJ idea 版本,终于,它成功了!

于 2021-08-05T10:20:54.697 回答
0

我看到很多建议构建或重新构建的答案,但以防万一这不能解决您的问题,请注意 IDEA 可以检测到一个方法,但如果您有一个new之前的方法,它将无法编译期待实例。

在此处输入图像描述

于 2020-02-13T14:19:25.310 回答
-1

我知道这很旧,但是对于其他任何人,请确保缺少的类与您收到错误/从哪里调用它的类在同一个包中。

于 2015-11-02T00:28:39.043 回答