对于不同的库和不同的项目,此问题会间歇性地发生 . 尝试导入库时,将识别包,但无法解析类名 .
如果在import语句中,我看到所有反编译的类显示在侧窗格中 - 包括我需要的那些 - 如果我尝试自动完成import语句,我注意到我需要的类没有在下拉菜单 .
我已经尝试使缓存无效,不起作用 . 我找不到任何类冲突 - 我的类路径中没有其他jar文件具有相同的包名称 . 我可以将此类导入其他项目 .
请看屏幕截图:
有人有线索吗?
我的导入Maven项目遇到了类似的问题 . 在一个模块中,它无法在导入时解析其他模块的一部分(是的,可以解析该模块的一部分) .
我变了“Maven主目录”到更新的版本解决了我的问题 .
更新:好一小时,回到破碎状态......
我找到了原因!
在我的情况下,我添加一个jar文件包含一些java源文件,但我认为java源码不好,在Intellij Idea依赖库中它自动添加源码,所以在Editor中导入是BAD,只需删除“项目结构“ - >”图书馆“,它适合我 .
它对我来说是编辑.idea文件夹中的包文件,因为我意外地将源添加到此jar库并且android无法通过删除b / m图片library error中标记的源行来解析它 .
然后重建gradle和bam问题解决了 .
您可以尝试使缓存无效并重新启动intellij,在许多情况下它会有所帮助 .
文件 - >使高速缓存/重新启动无效
这可能有多种原因 . 在我的情况下,它是错误的源根问题 . 无效缓存无法与其他解决方案一起使用 .
检查模块源根 .
项目结构(Ctrl Alt Shift S) .
模块
选择您的问题模块 .
窗口“源”顶部的“更改”选项卡 .
删除不需要的源根 . 保留一个并在此根目录中添加src和测试源根 .
我遇到了类似的问题,Mike的评论帮助我朝着解决它的方向前进 .虽然所需的库也是我项目中模块的一部分,但它需要更改范围 . 在模块依赖项中,我将 scope 更改为“ Compile " rather than " Test ”,现在它对我来说很好 .
检查模块依赖性 .
窗口"Dependencies"顶部的更改选项卡 .
检查需要的库(可能需要在选项卡'libraries'中添加指定的库)或模块已在此处列出且它具有正确的范围(主要是'complile') .
IntelliJ在解决依赖关系方面存在问题 . 请尝试以下方法:
右键单击pom.xml - > Maven - > Reimport
再次右键单击pom.xml - > Maven - >生成源和更新文件夹
文件 - >无效缓存/重新启动或重建项目确实 not 工作了 .
我的Gradle项目的作用是从IntelliJ v2017右上角的Gradle选项卡中“刷新所有Gradle项目”,使用下面显示的黄色标记按钮:
我尝试使缓存失效并重新启动,但唯一对我有用的是彻底清除.idea目录,然后从头开始创建一个新项目 .
当我尝试构建一个新的java项目时,我也多次遇到此错误 .
Below is the step how I got this stupid issue.
创建一个空项目,并创建新目录 src/main/java .
src/main/java
创建源包 net.gongmingqm10.sketch .
net.gongmingqm10.sketch
使用 gradle wrapper , gradle idea 为项目构建gradle资料 .
gradle wrapper
gradle idea
在 build.gradle 文件中添加一些依赖项,并在 gradle build 中重新导入项目 .
build.gradle
gradle build
在现有包中创建 User.java 和 School.java net.gongmingqm10.sketch
User.java
School.java
我尝试在User.java中使用import School时出错 .
Intellij保持抱怨导入时无法解析符号 .
Solution:
首先构建项目,并将main / java标记为源根 . Create a new directory 同名 net.gongmingqm10.sketch . 将旧麻烦包中的所有文件移动到新包中 .
Root cause:
Directory tree of source code
正如你从树上看到的那样 . 我有一个名为 net.gongmingqm10.sketch 的目录 . 但我们真正需要的是3级目录:net-> gongmingqm10-> sketch
但在我在Intellij中完成项目构建之前,我创建了一个名为 net.gongmingqm19.sketch 的新目录,它将为我提供一个名为 net.gongmingqm10.sketch 的真实目录 .
net.gongmingqm19.sketch
当我们尝试导入它时 . 显然,intellij如何在名为 a.b.c 的weired目录下导入文件 .
a.b.c
我发现以下答案来自@jossef-harush和@matt-leidholm有用from another link
在IntelliJ编辑器中
,单击红色关键字(例如 Integer )并按ALT ENTER(或单击灯泡图标)
Integer
从意图菜单中选择 Setup JDK
Setup JDK
Configure
JDK
/opt/jdk1.7.0_51
/opt/jdk1.7.0_65
右键单击pom.xml文件,转到Maven,单击Reimport . 我有类似的问题,这对我有用 .
简单重启对我有用 .
我建议先尝试重启,然后你可以选择使缓存无效 .
PS:清理系统缓存将导致清除本地历史记录 .
我有同样的问题,原因是项目来源的标记不正确 .
我手动创建了根内容,并没有注意到 src/main/test 文件夹被标记为 Sources 而不是 Tests . 这就是为什么我的测试类被假定拥有所有测试库( JUnit , Mockito 等),其范围为Compile,而不是Test .
src/main/test
Sources
Tests
JUnit
Mockito
一旦我将 src/main/test 标记为测试并重建模块,所有错误都消失了 .
@Anton Dozortsev我被一种类似的行为吓到了;我最终重新安装了IDE很多次,只是在删除IDEA应用程序,所有缓存,首选项等后才解决问题 .
我在过渡期间尝试了各种步骤(如重启,失效,删除 .idea 和 *.iml 文件等) .
.idea
*.iml
事实证明,问题是由于IntelliJ的 idea.max.intellisense.filesize 设置 . 我把它设置为100KB,小于我的依赖项大小,导致IntelliJ显示为未知,就像你的截图一样 .
idea.max.intellisense.filesize
固定:
单击“帮助” - >“编辑自定义属性”
将属性设置为更大的值;默认值为2500KB idea.max.intellisense.filesize=2500
idea.max.intellisense.filesize=2500
我最近在尝试使用Intellij处理NiFi时遇到了这个问题,原来问题是NiFi要求Maven> = 3.1.0并且我检查的版本(我猜我的默认值)是3.0.5 . 更新项目的Maven版本修复了它,所以在某些情况下,Maven版本的错误对齐可能是一个看起来的东西...我猜这是相当不寻常的,但如果你在线程上得到这么远,你可能有一个异常问题:)
文件 - >使缓存无效/重新启动并构建项目
一样的问题 . 如果这些方法不起作用 . 您可以尝试从本地maven存储库中删除lib,然后重新导入到pom .
最后它对我来说很好 .
有同样的问题,直到我注意到 src 文件夹是 marked as root source 而不是 java !改为只有java(src / main / java)作为源根解决了我的问题
file - > Project Structure - > Modules ,找到有问题的模块,单击它并选择右侧的 Dependencies 选项卡 . 单击绿色加号,尝试添加导致问题的jar或库 . 这对我行得通 .
file
Project Structure
Modules
Dependencies
缺少 io ?试试 import org.openide.util.io.ImageUtilities .
io
import org.openide.util.io.ImageUtilities
22 回答
我的导入Maven项目遇到了类似的问题 . 在一个模块中,它无法在导入时解析其他模块的一部分(是的,可以解析该模块的一部分) .
我变了“Maven主目录”到更新的版本解决了我的问题 .
更新:好一小时,回到破碎状态......
我找到了原因!
在我的情况下,我添加一个jar文件包含一些java源文件,但我认为java源码不好,在Intellij Idea依赖库中它自动添加源码,所以在Editor中导入是BAD,只需删除“项目结构“ - >”图书馆“,它适合我 .
它对我来说是编辑.idea文件夹中的包文件,因为我意外地将源添加到此jar库并且android无法通过删除b / m图片library error中标记的源行来解析它 .
然后重建gradle和bam问题解决了 .
您可以尝试使缓存无效并重新启动intellij,在许多情况下它会有所帮助 .
文件 - >使高速缓存/重新启动无效
这可能有多种原因 . 在我的情况下,它是错误的源根问题 . 无效缓存无法与其他解决方案一起使用 .
检查模块源根 .
项目结构(Ctrl Alt Shift S) .
模块
选择您的问题模块 .
窗口“源”顶部的“更改”选项卡 .
删除不需要的源根 . 保留一个并在此根目录中添加src和测试源根 .
我遇到了类似的问题,Mike的评论帮助我朝着解决它的方向前进 .
虽然所需的库也是我项目中模块的一部分,但它需要更改范围 . 在模块依赖项中,我将 scope 更改为“ Compile " rather than " Test ”,现在它对我来说很好 .
检查模块依赖性 .
项目结构(Ctrl Alt Shift S) .
模块
选择您的问题模块 .
窗口"Dependencies"顶部的更改选项卡 .
检查需要的库(可能需要在选项卡'libraries'中添加指定的库)或模块已在此处列出且它具有正确的范围(主要是'complile') .
IntelliJ在解决依赖关系方面存在问题 . 请尝试以下方法:
右键单击pom.xml - > Maven - > Reimport
再次右键单击pom.xml - > Maven - >生成源和更新文件夹
文件 - >无效缓存/重新启动或重建项目确实 not 工作了 .
我的Gradle项目的作用是从IntelliJ v2017右上角的Gradle选项卡中“刷新所有Gradle项目”,使用下面显示的黄色标记按钮:
我尝试使缓存失效并重新启动,但唯一对我有用的是彻底清除.idea目录,然后从头开始创建一个新项目 .
当我尝试构建一个新的java项目时,我也多次遇到此错误 .
Below is the step how I got this stupid issue.
创建一个空项目,并创建新目录
src/main/java
.创建源包
net.gongmingqm10.sketch
.使用
gradle wrapper
,gradle idea
为项目构建gradle资料 .在
build.gradle
文件中添加一些依赖项,并在gradle build
中重新导入项目 .在现有包中创建
User.java
和School.java
net.gongmingqm10.sketch
我尝试在User.java中使用import School时出错 .
Intellij保持抱怨导入时无法解析符号 .
Solution:
首先构建项目,并将main / java标记为源根 . Create a new directory 同名
net.gongmingqm10.sketch
. 将旧麻烦包中的所有文件移动到新包中 .Root cause:
Directory tree of source code
正如你从树上看到的那样 . 我有一个名为
net.gongmingqm10.sketch
的目录 . 但我们真正需要的是3级目录:net-> gongmingqm10-> sketch但在我在Intellij中完成项目构建之前,我创建了一个名为
net.gongmingqm19.sketch
的新目录,它将为我提供一个名为net.gongmingqm10.sketch
的真实目录 .当我们尝试导入它时 . 显然,intellij如何在名为
a.b.c
的weired目录下导入文件 .我发现以下答案来自@jossef-harush和@matt-leidholm有用from another link
在IntelliJ编辑器中
,单击红色关键字(例如
Integer
)并按ALT ENTER(或单击灯泡图标)从意图菜单中选择
Setup JDK
Configure
JDK
路径不正确(指向/opt/jdk1.7.0_51
而不是/opt/jdk1.7.0_65
)JDK
路径右键单击pom.xml文件,转到Maven,单击Reimport . 我有类似的问题,这对我有用 .
简单重启对我有用 .
我建议先尝试重启,然后你可以选择使缓存无效 .
PS:清理系统缓存将导致清除本地历史记录 .
我有同样的问题,原因是项目来源的标记不正确 .
我手动创建了根内容,并没有注意到
src/main/test
文件夹被标记为Sources
而不是Tests
. 这就是为什么我的测试类被假定拥有所有测试库(JUnit
,Mockito
等),其范围为Compile,而不是Test .一旦我将
src/main/test
标记为测试并重建模块,所有错误都消失了 .@Anton Dozortsev我被一种类似的行为吓到了;我最终重新安装了IDE很多次,只是在删除IDEA应用程序,所有缓存,首选项等后才解决问题 .
我在过渡期间尝试了各种步骤(如重启,失效,删除
.idea
和*.iml
文件等) .事实证明,问题是由于IntelliJ的
idea.max.intellisense.filesize
设置 . 我把它设置为100KB,小于我的依赖项大小,导致IntelliJ显示为未知,就像你的截图一样 .固定:
单击“帮助” - >“编辑自定义属性”
将属性设置为更大的值;默认值为2500KB
idea.max.intellisense.filesize=2500
我最近在尝试使用Intellij处理NiFi时遇到了这个问题,原来问题是NiFi要求Maven> = 3.1.0并且我检查的版本(我猜我的默认值)是3.0.5 . 更新项目的Maven版本修复了它,所以在某些情况下,Maven版本的错误对齐可能是一个看起来的东西...我猜这是相当不寻常的,但如果你在线程上得到这么远,你可能有一个异常问题:)
文件 - >使缓存无效/重新启动并构建项目
一样的问题 . 如果这些方法不起作用 . 您可以尝试从本地maven存储库中删除lib,然后重新导入到pom .
最后它对我来说很好 .
有同样的问题,直到我注意到 src 文件夹是 marked as root source 而不是 java !改为只有java(src / main / java)作为源根解决了我的问题
file
- >Project Structure
- >Modules
,找到有问题的模块,单击它并选择右侧的Dependencies
选项卡 . 单击绿色加号,尝试添加导致问题的jar或库 . 这对我行得通 .缺少
io
?试试import org.openide.util.io.ImageUtilities
.