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

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

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

请查看屏幕截图:

有人知道吗?


当前回答

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

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

其他回答

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

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

这可能有多种原因。对我来说,这是错误的根源问题。无效缓存不能与其他解决方案一起工作。

检查模块源根。

项目结构(Ctrl+Alt+Shift+S)。 模块 选择您的问题模块。 在“源”窗口顶部的更改选项卡。 删除不需要的源根。保留一个并在这个根中添加src和test源根。

我已经尝试了所有复杂的方法,但它们都不起作用,因为我懒得重新导入项目,所以我尝试了其他方法。 我的是gradle项目,所以我去了我的gradle。构建文件,删除依赖项,刷新依赖项,然后再次添加依赖项并再次刷新,导入在此之后开始工作。

我发现下面来自@ josself -harush和@matt-leidholm的答案在另一个链接中很有用

在IntelliJ编辑器中,单击红色关键字(以Integer为例)并按ALT + ENTER(或单击灯泡图标) 从intent菜单中选择Setup JDK

点击配置

在我的例子中,JDK路径不正确(指向/opt/jdk1.7.0_51而不是/opt/jdk1.7.0_65)

点击…并浏览到正确的JDK路径

让我们清除缓存

检查模块依赖关系。

项目结构(Ctrl+Alt+Shift+S)。 模块 选择您的问题模块。 更改选项卡顶部的窗口“依赖”。 检查需要什么库(也许,您需要添加指定的库 在标签“库”)或模块已经列出在这里,它有权利 Scope(主要是“编译”)。