对于不同的库和不同的项目,这个问题会间歇性地发生。 当尝试导入库时,包将被识别,但无法解析类名。
如果在import语句中,我右键单击-> Goto ->包的声明,我看到所有反编译的类显示在侧窗格中——包括我需要的那些—— 如果我尝试自动完成import语句,我注意到我需要的类没有在下拉列表中显示。
我已经试过使缓存无效了,没用。我找不到任何类冲突——在我的类路径中没有其他具有相同包名的jar文件。 我能够将这个类导入到其他项目中。
请查看屏幕截图:
有人知道吗?
对于不同的库和不同的项目,这个问题会间歇性地发生。 当尝试导入库时,包将被识别,但无法解析类名。
如果在import语句中,我右键单击-> Goto ->包的声明,我看到所有反编译的类显示在侧窗格中——包括我需要的那些—— 如果我尝试自动完成import语句,我注意到我需要的类没有在下拉列表中显示。
我已经试过使缓存无效了,没用。我找不到任何类冲突——在我的类路径中没有其他具有相同包名的jar文件。 我能够将这个类导入到其他项目中。
请查看屏幕截图:
有人知道吗?
当前回答
IntelliJ在解决依赖关系时存在问题。 试试下面的方法:
右键单击pom.xml -> Maven ->重新导入 再次右键单击pom.xml -> Maven ->生成源代码并更新文件夹
其他回答
我发现下面来自@ josself -harush和@matt-leidholm的答案在另一个链接中很有用
在IntelliJ编辑器中,单击红色关键字(以Integer为例)并按ALT + ENTER(或单击灯泡图标) 从intent菜单中选择Setup JDK
点击配置
在我的例子中,JDK路径不正确(指向/opt/jdk1.7.0_51而不是/opt/jdk1.7.0_65)
点击…并浏览到正确的JDK路径
让我们清除缓存
我已经尝试了所有复杂的方法,但它们都不起作用,因为我懒得重新导入项目,所以我尝试了其他方法。 我的是gradle项目,所以我去了我的gradle。构建文件,删除依赖项,刷新依赖项,然后再次添加依赖项并再次刷新,导入在此之后开始工作。
此外,检查您的类是否在编译排除项中
如果您看到左上角有一个灰色的小叉,您必须从编译排除中删除类
如何去除
当我尝试构建一个新的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的连线目录下的文件。
您可以尝试使缓存无效并重新启动IntelliJ,在许多情况下这将有所帮助。
File ->使缓存失效/重新启动