Intellij无法parsing导入的符号

这个问题间歇性地发生在不同的库和不同的项目上。 当试图导入一个库时,包会被识别,但类名不能被parsing。

如果在导入语句上,我right-click -> Goto -> the package's declaration ,我会看到在侧窗格中显示的所有反编译的类 – 包括我需要的 – 如果我尝试自动完成导入语句,我注意到我需要的课程不在下拉菜单中。

我试图使caching已经无效,不起作用。 我找不到任何类冲突 – 我的类path中没有其他jar文件具有相同的包名称。 我可以将这个类导入到其他项目中。

请参阅截图:

在这里输入图像说明

在这里输入图像说明

任何人都有线索?

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

文件 – >无效caching/重新启动

我面临类似的问题,Mike的评论帮助我朝着解决的方向前进。
尽pipe所需的库也是我项目中模块的一部分,但它需要改变范围。 在模块依赖项中,我将范围更改为“ 编译 ”而不是“ testing ”,现在对我来说工作正常。

这可能有多种原因。 在我的情况下,这是错误的根源问题。 无效caching不能与其他解决scheme一起使用。

检查你的模块的源代码。

  1. 项目结构(Ctrl + Alt + Shift + S)。

  2. 模块

  3. select你的问题模块。

  4. 更改窗口“来源”顶部的选项卡。

  5. 删除不需要的来源根。 保持一个,并添加src和testing源根在这个根。

检查你的模块依赖关系。

  1. 项目结构( Ctrl + Alt + Shift + S )。
  2. 模块
  3. select你的问题模块。
  4. 更改窗口“依赖项”顶部的选项卡。
  5. 检查需要什么库(也许,你需要添加指定的库库)或模块列在这里,它有正确的范围(主要是“complile”)。

我试图使caching无效并重新启动,但唯一对我有用的是彻底清除.idea目录,然后从头创build一个新的项目。

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

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

  1. 创build一个空的项目,并创build新的目录src/main/java
  2. 创build源代码包net.gongmingqm10.sketch
  3. 使用gradle wrappergradle idea为项目构buildgradle stuff。
  4. build.gradle文件中添加一些依赖,然后gradle build ,重新导入项目。
  5. 在现有的包net.gongmingqm10.sketch创buildUser.javanet.gongmingqm10.sketch
  6. 当我尝试在User.java中使用导入学校时出现错误。
  7. Intellij一直抱怨无法parsing导入符号。

解:

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

根本原因:

目录树的源代码

你可以从树上看到。 我有一个名为net.gongmingqm10.sketch的目录。 但是我们真正需要的是三级目录:net-> gongmingqm10-> sketch

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

当我们试图导入它。 很明显,intellij如何将文件导入到名为abc weired目录下。

简单的重新启动为我工作。

我build议先尝试重新启动,然后你可以select使caching无效。

PS:清理系统caching将导致清除本地历史logging。

我和我的导入的Maven项目有类似的问题。 在一个模块中,它不能parsing其他模块的部分导入符号(是的,该模块的一部分可以解决)。

我将“Maven主目录”更改为新版本解决了我的问题。

更新:好1小时,回到破碎的状态…

缺lessio ? 尝试import org.openide.util.io.ImageUtilities

我find了原因!

在我的情况下,我添加了一个jar文件,包括一些java源文件,但我认为java源是不好的,在Intellij Idea依赖库它添加源自动,所以在编辑器导入是坏的,只是删除源代码在“项目结构“ – >”图书馆“,它适用于我。

这对我来说是编辑.idea文件夹中的包文件,因为我不小心添加到这个jar库的源代码和android无法通过删除b / m图片库中标记的源代码行错误解决它。

然后重buildgradle和bam问题解决。

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

我手动创build了根内容,并没有注意到src/main/test文件夹被标记为Sources而不是Tests 。 所以这就是为什么我的testing类被假定为具有所有testing库( JUnitMockito等)的编译范围而不是testing。

只要我标记src/main/test作为testing并重build模块,所有的错误都消失了。

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

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

原来,问题是由于IntelliJ的idea.max.intellisense.filesize设置。 我已经把它设置为100KB,这比我的依赖的大小小,导致IntelliJ显示为未知,就像在你的截图。

固定:

  1. 点击帮助 – >编辑自定义属性

  2. 将该属性设置为更大的值; 默认是2500KB idea.max.intellisense.filesize=2500

我从@ jossef-harush和@ matt-leidholmfind了以下答案, 从另一个链接中很有用

  • 在IntelliJ编辑器中,点击红色关键字(例如Integer并按下ALT + ENTER (或点击灯泡图标)
  • 从意图菜单中selectSetup JDK

IntelliJ意图菜单

  • 点击Configure

项目SDK选择对话框

  • 在我的情况下, JDKpath不正确(指向/opt/jdk1.7.0_51而不是/opt/jdk1.7.0_65

Broken Configure SDK对话框

  • 点击...并浏览到正确的JDKpath

修复了配置SDK对话框

  • 让我们清除caching

IntelliJ文件菜单