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

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

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

请查看屏幕截图:

有人知道吗?


当前回答

>项目结构->模块,找到有问题的模块,点击它,选择右侧的Dependencies选项卡。单击绿色加号,尝试添加导致问题的jar或库。这对我很有用。

其他回答

此外,检查您的类是否在编译排除项中

如果您看到左上角有一个灰色的小叉,您必须从编译排除中删除类

如何去除

以上我所尝试的方法都对我不起作用(并不是说我尝试了所有的建议)。最后要做的是重命名类——我只是在类名和文件名中添加了一个2。然后我手动解析了所有的引用。(因为它们没有被识别,所以重构不会自动更改引用。)

一旦“2版本”在所有地方都得到了愉快的解决,我就能够重构并从类和文件中删除2,然后一切都恢复了正常。

我有同样的问题,原因是不正确的标记项目的来源。

我手动创建了根内容,没有注意到src/main/test文件夹被标记为“源”而不是“测试”。这就是为什么我的测试类假定它们所有的测试库(JUnit、Mockito等)的范围都是Compile,而不是test。

当我将src/main/test标记为Tests并重新构建模块时,所有错误都消失了。

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

检查模块源根。

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

我找到根源了!

在我的情况下,我添加了一个jar文件,包括一些java源文件,但我认为java源是坏的,在Intellij Idea依赖库中它自动添加源,所以在编辑器中导入是坏的,只需删除“项目结构”中的源代码->“库”,它为我工作。