Intellij无法parsing导入的符号
这个问题间歇性地发生在不同的库和不同的项目上。 当试图导入一个库时,包会被识别,但类名不能被parsing。
如果在导入语句上,我right-click -> Goto -> the package's declaration
,我会看到在侧窗格中显示的所有反编译的类 – 包括我需要的 – 如果我尝试自动完成导入语句,我注意到我需要的课程不在下拉菜单中。
我试图使caching已经无效,不起作用。 我找不到任何类冲突 – 我的类path中没有其他jar文件具有相同的包名称。 我可以将这个类导入到其他项目中。
请参阅截图:
任何人都有线索?
您可以尝试使caching无效并重新启动intellij,在许多情况下,这将有所帮助。
文件 – >无效caching/重新启动
我面临类似的问题,Mike的评论帮助我朝着解决的方向前进。
尽pipe所需的库也是我项目中模块的一部分,但它需要改变范围。 在模块依赖项中,我将范围更改为“ 编译 ”而不是“ testing ”,现在对我来说工作正常。
这可能有多种原因。 在我的情况下,这是错误的根源问题。 无效caching不能与其他解决scheme一起使用。
检查你的模块的源代码。
-
项目结构(Ctrl + Alt + Shift + S)。
-
模块
-
select你的问题模块。
-
更改窗口“来源”顶部的选项卡。
-
删除不需要的来源根。 保持一个,并添加src和testing源根在这个根。
检查你的模块依赖关系。
- 项目结构( Ctrl + Alt + Shift + S )。
- 模块
- select你的问题模块。
- 更改窗口“依赖项”顶部的选项卡。
- 检查需要什么库(也许,你需要添加指定的库库)或模块列在这里,它有正确的范围(主要是“complile”)。
我试图使caching无效并重新启动,但唯一对我有用的是彻底清除.idea目录,然后从头创build一个新的项目。
当我尝试构build一个新的Java项目时,我也多次得到这个错误。
下面是我如何得到这个愚蠢的问题的一步。
- 创build一个空的项目,并创build新的目录
src/main/java
。 - 创build源代码包
net.gongmingqm10.sketch
。 - 使用
gradle wrapper
,gradle idea
为项目构buildgradle stuff。 - 在
build.gradle
文件中添加一些依赖,然后gradle build
,重新导入项目。 - 在现有的包
net.gongmingqm10.sketch
创buildUser.java
和net.gongmingqm10.sketch
- 当我尝试在User.java中使用导入学校时出现错误。
- 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库( JUnit
, Mockito
等)的编译范围而不是testing。
只要我标记src/main/test
作为testing并重build模块,所有的错误都消失了。
@Anton Dozortsev我被类似的行为逼疯了。 我最终重新安装IDE很多次,只有在移除IDEA应用程序,所有caching,首选项等后才能解决问题。
我在过渡期间尝试了各种步骤(如重新启动,失效,删除.idea
和*.iml
文件等)。
原来,问题是由于IntelliJ的idea.max.intellisense.filesize
设置。 我已经把它设置为100KB,这比我的依赖的大小小,导致IntelliJ显示为未知,就像在你的截图。
固定:
-
点击帮助 – >编辑自定义属性
-
将该属性设置为更大的值; 默认是2500KB
idea.max.intellisense.filesize=2500
我从@ jossef-harush和@ matt-leidholmfind了以下答案, 从另一个链接中很有用
- 在IntelliJ编辑器中,点击红色关键字(例如
Integer
)并按下ALT + ENTER (或点击灯泡图标) - 从意图菜单中select
Setup JDK
- 点击
Configure
- 在我的情况下,
JDK
path不正确(指向/opt/jdk1.7.0_51
而不是/opt/jdk1.7.0_65
)
- 点击...并浏览到正确的
JDK
path
- 让我们清除caching