对于不同的库和不同的项目,此问题会间歇性地发生。尝试导入库时,将识别包,但无法解析类名。
如果在import语句中,我right-click -> Goto -> the package's declaration
,我看到所有反编译的类显示在侧窗格中 - 包括我需要的那些 - 如果我尝试自动完成import语句,我注意到我需要的类没有在下拉列表。
我已经尝试使缓存无效,不起作用。我找不到任何类冲突 - 我的类路径中没有其他jar文件具有相同的包名称。我可以将此类导入其他项目。
请看屏幕截图:
有人有线索吗?
您可以尝试使缓存无效并重新启动intellij,在许多情况下它会有所帮助。
文件 - >使高速缓存/重新启动无效
我尝试使缓存失效并重新启动,但唯一对我有用的是彻底清除.idea目录,然后从头开始创建一个新项目。
当我尝试构建一个新的java项目时,我也多次遇到此错误。
以下是我如何解决这个愚蠢问题的步骤。
src/main/java
。net.gongmingqm10.sketch
。gradle wrapper
,gradle idea
为项目构建gradle东西。build.gradle
中创建gradle build
和User.java
解:
首先构建项目,并将main / java标记为源根。创建一个名为School.java
的新目录。将旧麻烦包中的所有文件移动到新包中。
根本原因:
net.gongmingqm10.sketch
正如你从树上看到的那样。我有一个名为net.gongmingqm10.sketch
的目录。但我们真正需要的是3级目录:net-> gongmingqm10-> sketch
但在我在Intellij中完成项目构建之前,我创建了一个名为Directory tree of source code的新目录,它将为我提供一个名为net.gongmingqm10.sketch
的真实目录。
当我们尝试导入它时。显然,intellij如何在名为net.gongmingqm19.sketch
的weired目录下导入文件。
@Anton Dozortsev我被类似的行为所驱使;我最终重新安装了IDE很多次,只是在删除IDEA应用程序,所有缓存,首选项等之后才解决问题。
我在过渡期间尝试了各种各样的步骤(比如重启,失效,删除net.gongmingqm10.sketch
和a.b.c
文件等等。)
事实证明,问题是由于IntelliJ的.idea
设置。我将它设置为100KB,这比我的依赖项大小要小,导致IntelliJ将其显示为未知,就像在屏幕截图中一样。
固定:
*.iml
有同样的问题,直到我注意到src文件夹被标记为根源而不是java!改为只有java(src / main / java)作为源根解决了我的问题idea.max.intellisense.filesize
在项目控制台中运行此命令:
idea.max.intellisense.filesize=2500
完成。多久就有这个问题。尝试'无效缓存和重启'以及所有其他解决方案。运行该命令对我来说非常完美。我目前正在使用IntelliJ 2019.2,但这也发生在以前的版本和解决方案中。
简单重启对我有用。
我建议先尝试重启,然后你可以选择使缓存无效。
PS:清理系统缓存将导致清除本地历史记录。
我的导入Maven项目遇到了类似的问题。在一个模块中,它无法在导入时解析其他模块的一部分(是的,可以解析该模块的一部分)。
我将“Maven主目录”更改为更新的版本解决了我的问题。
更新:好一小时,回到破碎状态......
我找到了原因!
在我的情况下,我添加一个jar文件包含一些java源文件,但我认为java源码不好,在Intellij Idea依赖库中它自动添加源码,所以在编辑器中导入是BAD,只需删除源代码“项目结构“ - >”图书馆“,它适合我。
我有同样的问题,原因是项目来源的标记不正确。
我手动创建了根内容,并没有注意到mvn idea:idea
文件夹被标记为library error而不是src/main/test
。所以这就是为什么我的测试类被假定为具有Compile范围的所有测试库(Sources
,Tests
等),而不是Test。
一旦我将JUnit
标记为测试并重建模块,所有错误都消失了。
这可能有多种原因。在我的情况下,这是错误的源根问题。无效缓存无法与其他解决方案一起使用。
检查模块源根。
我最近尝试使用Intellij来处理NiFi,结果发现问题是NiFi需要Maven> = 3.1.0而我检查的版本(我猜我的默认值)是3.0.5。为项目更新Maven版本修复了它,所以在某些情况下,Maven版本的错误对齐可能是一个看起来的东西...我猜这是相当不寻常的,但如果你在线程上得到这么远,你可能有一个异常问题:)
同样的问题。如果这些方法不起作用。您可以尝试从本地maven存储库中删除lib,然后重新导入到pom。
Mockito
最后它对我来说很好。
src/main/test
经过长时间的搜索,我发现在maven项目中我的机器上的某个依赖项已经被破坏了。奇怪的是依赖仍然在编译的java代码中正常工作。然而,当我清理并重建我的maven依赖缓存时,问题就消失了,IntelliJ识别了包。你可以通过运行:
Modules
有趣的是,我问题的根源不是IntelliJ,而是maven本身。
请尝试File-> Synchronize。然后在无效之前关闭并重新打开IntelliJ。
一旦我重新开始。我会失效,但同步在重新启动后清除了所有内容。
缺少Dependencies
?试试mvn dependency:purge-local-repository
。
检查模块依赖性。
我遇到了类似的问题,迈克的评论帮助我朝着解决它的方向前进。 虽然所需的库也是我项目中模块的一部分,但它需要更改范围。在模块依赖项中,我将范围更改为“编译”而不是“测试”,现在它对我来说很好。
IntelliJ在解决依赖关系方面存在问题。请尝试以下方法:
文件 - >使缓存无效/重新启动并构建项目
我从@jossef-harush和@matt-leidholm找到了以下答案有用的from another link
Integer
)并按ALT + ENTER(或单击灯泡图标)Setup JDK
Configure
JDK
路径不正确(指向/opt/jdk1.7.0_51
而不是/opt/jdk1.7.0_65
)JDK
路径右键单击pom.xml文件,转到Maven,单击Reimport。我有类似的问题,这对我有用。