对于不同的库和不同的项目,此问题会间歇性地发生。 尝试导入库时,将识别包,但无法解析类名。
如果在导入语句中,我right-click -> Goto -> the package's declaration
,我看到侧窗格中显示的所有反编译类 - 包括我需要的那些 -
如果我尝试自动完成import语句,我会注意到我需要的类没有在下拉列表中显示。
我已经尝试过无效缓存,不起作用。我找不到任何类冲突 - 我的类路径中没有其他jar文件具有相同的包名称。 我可以将这个类导入到其他项目中。
请看屏幕截图:
任何人都有线索?
答案 0 :(得分:160)
你可以尝试使缓存无效并重新启动intellij,在很多情况下它会有所帮助。
档案 - >使高速缓存/重新启动无效
答案 1 :(得分:34)
这可能有多种原因。在我的情况下,这是错误的源根问题。无效的缓存无法与其他解决方案一起使用。
检查您的模块源根。
项目结构(Ctrl + Alt + Shift + S)。
模块
选择您的问题模块。
更改“源”窗口顶部的标签。
删除不需要的源根。保留一个并在此根目录中添加src和测试源根。
答案 2 :(得分:10)
我遇到了类似的问题,迈克的评论帮助我朝着解决它的方向前进。
虽然所需的库也是我项目中模块的一部分,但它需要更改范围。在模块依赖项中,我将范围更改为“编译”而不是“测试”,现在它对我来说很好。
答案 3 :(得分:10)
检查您的模块依赖关系。
答案 4 :(得分:9)
IntelliJ在解决依赖关系方面存在问题。 请尝试以下方法:
答案 5 :(得分:7)
在项目控制台中运行以下命令:
mvn idea:idea
完成。 曾多次发生此问题。尝试了“使缓存无效并重新启动”和所有其他解决方案。运行该命令对我来说很完美。 我当前正在使用IntelliJ 2019.2,但是在以前的版本中也是如此,并且解决方案也能正常工作。
答案 6 :(得分:5)
文件->使缓存无效/重新启动或重建项目对我来说不起作用。
对我的Gradle项目起作用的是使用下面显示的黄色标记按钮,从IntelliJ v2017右上角的Gradle选项卡中“刷新所有Gradle项目”:
答案 7 :(得分:3)
右键单击pom.xml文件,转到Maven,然后单击“重新导入”。我有类似的问题,这对我有用。
答案 8 :(得分:2)
我从@jossef-harush和@matt-leidholm有用的from another link找到了以下答案
Integer
)并按 ALT + ENTER (或单击灯泡图标)Setup JDK
Configure
JDK
路径不正确(指向/opt/jdk1.7.0_51
而不是/opt/jdk1.7.0_65
)
JDK
路径
答案 9 :(得分:1)
请尝试“文件”->“同步”。然后在您无效之前关闭并重新打开IntelliJ。
一旦我重新启动。我本来会无效的,但是重新启动后同步会清除所有内容。
答案 10 :(得分:1)
答案 11 :(得分:1)
档案 - >使高速缓存/重新启动无效 和 建立你的项目
答案 12 :(得分:1)
我尝试使缓存失效并重新启动,但唯一对我有用的是彻底清除.idea目录,然后从头开始创建一个新项目。
答案 13 :(得分:1)
@Anton Dozortsev I was driven crazy by a similar behavior; I ended up re-installing the IDE a bunch of times, only getting past the issue after removing the IDEA app, all caches, preferences, etc.
I tried all kinds of steps in the interim, (like restarts, invalidations, deleting .idea
and *.iml
files, and others.)
Turns out, the problem was due to IntelliJ's idea.max.intellisense.filesize
setting. I had set it to 100KB, which was smaller than my dependency's size, leading to IntelliJ showing it as unknown, just like in your screenshot.
Fix:
Click on Help -> Edit Custom Properties
Set the property to a larger value; the default is 2500KB
idea.max.intellisense.filesize=2500
答案 14 :(得分:1)
当我尝试构建一个新的java项目时,我也多次遇到此错误。
以下是我遇到这个愚蠢问题的步骤。
src/main/java
。net.gongmingqm10.sketch
。gradle wrapper
,gradle idea
为项目构建gradle资源。build.gradle
文件中添加一些依赖项,gradle build
重新导入项目。User.java
School.java
和net.gongmingqm10.sketch
<强>解决方案:强>
首先构建项目,并将main / java标记为源根。 使用相同名称net.gongmingqm10.sketch
创建新目录。将所有文件从旧的麻烦包中移到新包中。
根本原因:
从树上可以看到。我有一个名为net.gongmingqm10.sketch
的目录。但我们真正需要的是3级目录:net-&gt; gongmingqm10-&gt; sketch
但在我在Intellij中完成项目构建之前,我创建了一个名为net.gongmingqm19.sketch
的新目录,它将为我提供一个名为net.gongmingqm10.sketch
的真实目录。
当我们尝试导入它时。显然,intellij如何在名为a.b.c
的weired目录下导入文件。
答案 15 :(得分:0)
我上面没有尝试过的任何方法对我都有效(不是我尝试了所有建议)。最终的窍门是重命名类-我只是在类名和文件名中添加了2。然后,我手动解析了所有引用。 (由于无法识别它们,因此重构不会自动更改引用。)
一旦“ 2-version”在每个地方都得到了愉快的解决,我便可以重构并从类和文件中删除2,一切就应如此。
答案 16 :(得分:0)
在我的情况下,解决方案是将项目添加为maven项目,除了我将其导入为maven项目:P
转到pom.xml->右键单击->添加为Maven项目
答案 17 :(得分:0)
Intelli iDEA导致这些愚蠢的麻烦@次。简单地转到pom.xml,右键单击并执行-> Maven->重新导入。
这应该可以解决问题。
答案 18 :(得分:0)
对于2020.1.4 Ultimate Edition,我必须执行以下操作
View -> Maven -> Generate Sources and Update Folders For all Projects
对我来说,问题是图书馆没有人口稠密
mvn -U clean install
来自终端。
答案 19 :(得分:0)
我的问题是我的 Maven 插件在更新后被禁用。我去 Help -> Find Action... -> Typed in Maven 发现它是“Off”。我点击了切换开关,稍加加载后它就重新启用了。
答案 20 :(得分:0)
答案 21 :(得分:0)
尝试通过以下方式从上游清理 maven:
mvn -U clean install
答案 22 :(得分:0)
经过长时间的搜索,我发现某个Maven项目中的计算机上的某种依赖关系被破坏。奇怪的是,依赖项在已编译的Java代码中仍然可以正常工作。但是,当我清理并重建我的Maven依赖项缓存时,问题消失了,并且IntelliJ识别了该程序包。您可以通过运行以下命令来做到这一点:
mvn dependency:purge-local-repository
有趣的是,问题的根源不是IntelliJ,而是maven本身。
答案 23 :(得分:0)
file
-> Project Structure
-> Modules
,找到有问题的模块,单击它,然后选择右侧的Dependencies
标签。单击绿色加号,尝试添加引起问题的jar或库。对我有用。
答案 24 :(得分:0)
我最近在尝试使用Intellij处理NiFi时遇到了这个问题,原来问题是NiFi需要Maven&gt; = 3.1.0而且我检查过的版本(我想我的默认值)是3.0 0.5。更新项目的Maven版本修复了它,所以在某些情况下,Maven版本的错误对齐可能是一个看起来的东西...我猜这是相当不寻常的但是如果你在线程上得到这么远,你可能有一个不寻常的问题:)
答案 25 :(得分:0)
我遇到了同样的问题,原因是项目来源的标记不正确。
我手动创建了Root Content,但没有注意到src/main/test
文件夹被标记为Sources
而不是Tests
。所以这就是为什么我的测试类被假定拥有所有测试库(JUnit
,Mockito
等),其范围为Compile,而不是Test。
我一旦将src/main/test
标记为测试并重建模块,所有错误都消失了。
答案 26 :(得分:0)
对我来说,编辑.idea文件夹中的包文件是因为我意外地将源添加到此jar库中,并且android无法通过删除b / m图片中标记的源行来解析它{{ 3}}
然后重建gradle和bam问题解决了。
答案 27 :(得分:0)
我找到了原因!
在我的情况下,我添加了一个包含一些java源文件的jar文件,但我认为java源码不好,在Intellij Idea依赖库中它自动添加源码,所以在Editor中导入是BAD,只需删除源码代码&#34;项目结构&#34; - &GT; &#34;图书馆&#34;,它对我有用。
答案 28 :(得分:0)
我的导入Maven项目遇到了类似的问题。在一个模块中,它无法在导入时解析其他模块的一部分(是的,可以解析该模块的一部分)。
我将“Maven主目录”更改为更新的版本解决了我的问题。
更新:好一小时,回到破碎的状态......
答案 29 :(得分:0)
简单重启对我有用。
我建议首先尝试重启,然后您可以选择使缓存无效。
PS:清理系统缓存将导致清除本地历史记录。
答案 30 :(得分:-1)
缺少io
?试试import org.openide.util.io.ImageUtilities
。