对于不同的库和不同的项目,这个问题会间歇性地发生。 当尝试导入库时,包将被识别,但无法解析类名。

如果在import语句中,我右键单击-> Goto ->包的声明,我看到所有反编译的类显示在侧窗格中——包括我需要的那些—— 如果我尝试自动完成import语句,我注意到我需要的类没有在下拉列表中显示。

我已经试过使缓存无效了,没用。我找不到任何类冲突——在我的类路径中没有其他具有相同包名的jar文件。 我能够将这个类导入到其他项目中。

请查看屏幕截图:

有人知道吗?


当前回答

在我的情况下,解决方案是将项目添加为maven项目,除了我作为maven项目导入的事实:P

转到pom.xml ->右键单击->添加为maven项目

其他回答

我导入的Maven项目也遇到了类似的问题。在一个模块中,它不能为另一个模块的一部分解析导入符号(是的,该模块的一部分可以解析)。

我把“Maven主目录”改为一个新版本,解决了我的问题。

更新:有效1小时,回到破碎状态…

您可以尝试使缓存无效并重新启动IntelliJ,在许多情况下这将有所帮助。

File ->使缓存失效/重新启动

当我尝试构建一个新的java项目时,我也多次得到这个错误。

下面是我如何得到这个愚蠢的问题的步骤。

创建一个空项目,并创建新目录src/main/java。 创建源包net.gongmingqm10.sketch。 使用gradle wrapper, gradle idea来为项目构建gradle的东西。 在构建中添加一些依赖项。Gradle文件,Gradle构建,重新导入项目。 在现有的包net.gongmingqm10.sketch中创建User.java和School.java 当我尝试在User.java中使用import School时,我得到了错误。 Intellij一直抱怨无法解决符号导入。

解决方案:

首先构建项目,并将main/java标记为源根。创建一个同名的新目录net.gongmingqm10.sketch。将所有文件从旧的麻烦包中移动到新包中。

根本原因:

目录树的源代码

正如你从树上看到的。我有一个叫net.gongmingqm10.sketch的目录。但我们真正需要的是3级目录:net->gongmingqm10->sketch

但是在Intellij中完成项目构建之前,我创建了名为net.gongmingqm19的新目录。它将为我提供一个名为net.gongmingqm10.sketch的真实目录。

当我们导入它的时候。显然,intellij如何导入名称为a.b.c的连线目录下的文件。

@Anton Dozortsev我被类似的行为逼疯了;我最终重新安装了IDE很多次,只有在删除IDEA应用程序、所有缓存、首选项等之后才解决了这个问题。

在此期间,我尝试了各种步骤(如重新启动、失效、删除.idea和*。Iml文件等。)

事实证明,这个问题是由于IntelliJ的idea.max.intellisense.filesize设置。我把它设置为100KB,这比我的依赖项的大小要小,导致IntelliJ显示它为未知,就像你的截图一样。

Fix:

点击帮助->编辑自定义属性 将属性设置为较大的值;默认为2500KB idea.max.intellisense.filesize = 2500

右键单击pom.xml文件,转到Maven,单击重新导入。我也有类似的问题,这个方法对我很有效。