繁体   English   中英

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

[英]Getting "cannot find Symbol" in Java project in IntelliJ

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

HUD.getInstance().update(timeDelta);

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

但是,在 IntelliJ 中编译此项目时,我HUD.getInstance()调用的行上找不到符号 HUD

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

选择 Build->Rebuild Project 将解决它

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

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

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

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

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

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

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

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

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

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

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

  1. 重新编译文件/模块

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

  3. 尝试mvn clean install -DskipTests

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

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

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

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

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

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

Right-click project folder -> Rebuild对我有用。

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

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

IntelliJ 截图

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-Djps.track.ap.dependencies=false

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

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

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

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

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

在我的情况下,将.aj更改为.java修复了它。

有时您想要的类在test源目录中。 发生在我身上,无论如何……

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

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

在此处输入图像描述

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

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

有一次当Maven ReimportRebuild ProjectInvalidate 缓存没有帮助我从 .idea 文件夹中删除子文件夹artifactslibraries ,而不是整个文件夹,所以我保存了自定义项目设置。

...并且当此处没有任何内容有助于检查此处发布的idea.log文件时

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

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

对我来说:我在控制台中运行了mvn clean install (不是嵌入式 IntelliJ maven)。 然后当我在 Intellji maven 中再次尝试时,它工作正常。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM