[英]Getting "cannot find Symbol" in Java project in IntelliJ
我从GameManager.java
类中调用了一个静态单例实例。
HUD.getInstance().update(timeDelta);
HUD.java
包含HUD
类以及其他两个相关类HUDTextElement
和HUDElement
。 所有的类都在同一个根路径../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
文件夹并尝试了 - 它有效。
我遇到了同样的问题,答案中给出了很多解决方案,尝试所有这些解决方案花了我相当长的时间,所以如果你遇到这个错误,我想在这里提出一个有条不紊的方法。
检查以下内容,如果缺少某些内容,则创建/更新
如果一切正常,您可以按给定顺序尝试以下解决方案
重新编译文件/模块
如果这不能解决问题,请尝试刷新 maven 依赖项并使用Maven -> Reimport
and Build -> Rebuild Project
尝试mvn clean install -DskipTests
尝试使用File > Invalidate caches/ restart
使 IntelliJ 缓存无效并重新启动 IDE
删除 .idea 文件夹并重新导入项目
感谢所有回答此问题的人,您可以参考他们的答案以获取有关每个点的更多描述。
感谢到目前为止的帮助,原来修复是首先编译 HUD.java(右键单击文件-> 编译 HUD.java)。 编译完 java 文件后,项目的其余部分可以毫无问题地编译。
我真的不知道为什么会修复它,或者为什么 IntelliJ 不会自动执行此操作,但根错误似乎与 IntelliJ 未正确处理单个 .java 文件中的多个类有关。
当我删除一个文件夹然后将其复制粘贴回项目时,这发生在我身上。
Right-click project folder -> Rebuild
对我有用。
我必须右键单击该项目,然后在“运行 Maven”子菜单下选择“重新导入”。
我在我的项目中使用 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 并解决了依赖关系。 我猜它以某种方式清除了缓存。
就我而言,我在从另一个模块中查找类时遇到了问题。 在pom.xml
中,我只是指定了<scope>compile</scope>
的这种依赖关系。 删除这条线有帮助。
这对我有用,比如说 A 类依赖于 B 类(以及 c、d 类等),但是错误会在没有任何错误的 A 类上引发。 所以我尝试先单独编译 A 类 -> 它在B 类的包上显示错误。 所以试图编译B类的整个包。现在它抛出了确切的错误类(在我的案例中,B类有错误)。 通常 Intellj 在编译/构建时会显示带有行号的确切错误类。 在某些情况下,它会在错误的地方/班级中引发错误。 试试。
有一次当Maven Reimport , Rebuild Project , Invalidate 缓存没有帮助我从 .idea 文件夹中删除子文件夹artifacts
和libraries
,而不是整个文件夹,所以我保存了自定义项目设置。
...并且当此处没有任何内容有助于检查此处发布的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.