在 IntelliJ 中获取 Java 项目中的“ can not find 雄符号”

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

HUD.getInstance().update(timeDelta);

HUD.java包含 HUD类以及另外两个相关的类 HUDTextElementHUDElement。所有类都在同一个根路径 ../src/org/mypackage中。

然而,当在 IntelliJ 中编译这个项目时,我在线上得到了 找不到符号平视显示器,我调用了 HUD.getInstance()

这段完全相同的代码在 Eclipse 中编译得很好,知道问题出在哪里吗?

242252 次浏览

这可能是你的。./src 文件夹在 Intellij IDEA 没有标记为“源”文件夹,所以它不知道去那里找你的类。您可以右键单击项目资源管理器中的文件夹,并选择“标记为源文件夹”来修复此问题。

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

我真的不知道为什么这个修复了它,或者为什么 IntelliJ 不会自动这样做,但根错误似乎与 IntelliJ 没有正确处理单个类中的多个类有关。Java 文件。

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

在我的案例中,将 src 文件夹标记为 source 提供了 没有帮助。

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

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

无论错误出现在何处,都要为文件夹/目录提供源代码,这个错误必须得到解决。

有时,即使我们为整个文件夹分配了源,单个类可能仍然不可用。对于新手用户来说,简单的解决方案就是导入一个新的拷贝,然后再构建一个应用程序,这样就可以很好的运行了。

建议在此之后进行干净的安装。

我得到相同的“无法找到符号”错误时,我做 Build -> Make Project。我通过删除 Maven/target文件夹、右键单击项目模块并执行 Maven -> ReimportBuild -> Rebuild Project来修复这个问题。这是在 IntelliJ 的创意13.1.5。

事实证明,Maven -> Reimport是关键,因为在我最终解决这个问题之前,这个问题已经重新出现过几次。

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

我遇到了同样的问题,通过单击 File > Invalidcache/start 修复了它

由于这是谷歌搜索“ intelliJ 找不到符号”错误的第一个结果,因此我也将提供我的解决方案。

对我来说,问题是我的项目起源于 Eclipse,而且一些文件包含对由 pom.xml 中的规范在 src/generated-sources中生成的类的依赖性。由于某些原因,在我第一次打开项目时没有正确地执行,重新构建/重新导入也没有帮助,所以从来没有生成文件。

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

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

.aj改成 .java修正了我的情况。

选择 Build-> Rebuild Project 将解决此问题

有时候你想要的类在 test源目录中。

我也遇到了同样的问题,只是我导入了那些依赖关系没有解析的类。我刷新了 Maven 项目,重建项目。它仍然没有解决。 看来 IntelliJ 缓存错误。 我重新启动了 IntelliJ 并解决了依赖关系。我猜它以某种方式清除了缓存。

我必须右键单击该项目,并在“ RunMaven”子菜单下选择“ Reimport”。

对于我来说,问题在于在 Intellij Idea 的 java 项目中使用龙目岛的实验特性@utilityClass 来将类方法注释为“ static”。当我显式地将类的每个方法设置为“ static”而不是使用注释时,所有的编译问题都消失了。

重新编译主 Application.java 类为我做到了这一点,右键单击 class > Remocile

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

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

在 IntelliJ 上做 CMD + Shift + A (mac os)-> 输入“ Reimport all Maven project”。

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

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

当我删除一个文件夹,然后将其复制粘贴回项目时,就发生了这种情况。

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

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

如果您正在使用龙目岛,请确保启用了注释处理。

我看到很多答案建议构建或重新构建,但只是为了以防万一这不能解决你的问题,只是注意到 IDEA 可以检测到一个方法,但它不会编译的情况下,你有一个 new之前,因为它将预期的实例。

enter image description here

对我来说,龙目岛是个问题,因为它需要启用注释处理。你可以在 Settings > Build > Compiler > Annotation Processors上找到这个复选框

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

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

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

  1. Src 文件夹被标记为源文件夹
  2. . imls 文件存在
  3. 启用了注释处理
  4. 如果您最近使用@UtilityClass,那么它也可以是原因,昆虫链接

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

  1. 重新编译文件/模块

  2. 如果这还不能解决问题,那么尝试刷新 maven 依赖关系并使用 Maven -> ReimportBuild -> Rebuild Project构建项目

  3. 试试 mvn clean install -DskipTests

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

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

感谢每一个回答这个问题的人,你可以参考他们的答案来获得更多关于每一点的描述。

这对我来说很有效,比如 A 类依赖于 B 类(以及 c 类、 d 类等) ,但是错误抛给 A 类,而 A 类没有任何错误。所以我尝试单独编译类 A-> 它在 B 类包上显示错误。因此尝试编译整个 B 类包。现在它抛出的正是错误类(在我的情况下,类 B 有错误)。在编译/构建时,Intelj 通常用行号显示准确的错误类。在某些情况下,它会在错误的地方/类中抛出错误。试试看。

有一次当 Maven Reimport重建计划无效缓存没有帮助我删除子文件夹 artifactslibraries从。想法文件夹,而不是整个一个,所以我保存自定义项目设置。

... 当没有写在这里有助于检查 点子,日志文件作为公布的 给你

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

在 VM 选项中添加下面的参数就像建议的 给你那样对我有用。

-Djps.track.ap.dependencies=false

我什么方法都试过了,都没用。所以,在浪费了几个小时之后,我决定采用 升级 IntelliJ的想法版本,最后,它奏效了!

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

IntelliJ screenshot

删除 ~/.m2中的所有内容。启动 intellij-idea。 (使用 IntelliJ IDEA 2021.3(社区版))

对我来说: 我在控制台上运行了一个 mvn clean install(没有使用嵌入式 IntelliJ 专家)。然后当我在 Intellji 再次尝试时,它工作得很好。