导入时无法解析符号

对于不同的库和不同的项目,这个问题会间歇性地发生。 当试图导入一个库时,包将被识别,但类名无法解析 如果在import语句中,I right-click -> Goto -> the package's declaration,我将看到在侧窗格中显示的所有反编译类——包括我需要的那些—— 如果我尝试自动完成import语句,我注意到我需要的类没有在下拉列表中出现

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

请查看屏幕截图:

.

.

有人知道吗?

384943 次浏览

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

文件→缓存失效/重启

我也遇到过类似的问题,迈克的评论帮助我朝着解决它的方向前进。< br > 虽然所需的库也是我项目中模块的一部分,但它需要改变作用域。在模块依赖项中,我将范围更改为“编译”而不是“测试”,现在它对我来说工作正常

检查模块依赖关系。

  1. 项目结构(Ctrl+Alt+转变+年代)。
  2. 模块
  3. 选择您的问题模块。
  4. 更改选项卡顶部的窗口“依赖”。
  5. 检查需要什么库(也许,你需要添加指定的库 在标签“库”)或模块已经列出在这里,它有权利 范围('编译'大部分).

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

检查模块源根。

  1. 项目结构(< kbd > Ctrl < / kbd > + < kbd > Alt < / kbd > + < kbd >转变< / kbd > + < kbd > S < / kbd >)。

  2. 模块

  3. 选择您的问题模块。

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

  5. 删除不需要的源根。保留一个并在这个根中添加src和test源根。

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

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

  1. 创建一个空项目,并创建新目录src/main/java
  2. 创建源包net.gongmingqm10.sketch
  3. 使用gradle wrappergradle idea为项目构建gradle内容。
  4. build.gradle文件和gradle build文件中添加一些依赖项,重新导入项目。
  5. 在现有包net.gongmingqm10.sketch中创建User.javaSchool.java
  6. 当我尝试在User.java中使用import School时,我得到了错误。
  7. Intellij一直抱怨无法解决符号导入。

解决方案:

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

根本原因:

目录树源代码 .

正如你从树上看到的。我得到了一个名为net.gongmingqm10.sketch的目录。但我们真正需要的是3级目录:net->gongmingqm10->sketch

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

当我们导入它的时候。显然,intellij如何导入名称为a.b.c的连接目录下的文件。

简单的重启对我很有效。

我建议首先尝试重新启动,然后您可以选择使缓存无效。

PS:清除系统缓存会导致清除本地历史记录。

我导入的Maven项目也遇到了类似的问题。在一个模块中,它不能为另一个模块的一部分解析导入符号(是的,该模块的一部分可以解析)。

我把“Maven主目录”改为一个新版本,解决了我的问题。

更新:有效1小时,回到破碎状态…

我找到根源了!

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

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

然后重建gradle, bam问题就解决了。

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

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

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

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

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

事实证明,问题是由于IntelliJ的idea.max.intellisense.filesize设置。我把它设置为100KB,这比我的依赖项的大小要小,导致IntelliJ显示它为未知,就像你的截图一样。

解决办法:

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

  2. 将属性设置为较大的值;默认为2500KB 李idea.max.intellisense.filesize=2500 < / p > < / >

我发现下面的答案从@jossef-harush@matt-leidholm有用的从另一个链接

  • 在IntelliJ编辑器中,单击红色关键字(例如Integer)并按ALT + 输入(或单击灯泡图标)
  • 从intent菜单中选择Setup JDK

IntelliJ意图菜单

  • 点击Configure

项目SDK选择对话框

  • 在我的例子中,JDK路径是不正确的(指向/opt/jdk1.7.0_51而不是/opt/jdk1.7.0_65)

破碎配置SDK对话框

  • 单击...并浏览到右边的JDK路径

Fixed Configure SDK dialog

  • 让我们清除缓存

IntelliJ File menu

我最近在尝试使用Intellij在NiFi上工作时遇到了这个问题,原来问题是NiFi需要Maven >= 3.1.0,而我用(我猜我的默认)签出的版本是3.0.5。更新项目的Maven版本解决了这个问题,所以在某些情况下,Maven版本不对齐可能是一个问题…我猜这是相当不寻常的,但如果你在线程上走了这么远,你可能有一个不寻常的问题:)

IntelliJ在解决依赖项时有问题。

  1. 右键单击pom.xml -> Maven ->重新导入
  2. 再次右键单击pom.xml -> Maven ->生成源代码并更新文件夹
< p > FileInvalidate Caches/Restart 和 构建您的项目

File ->使缓存失效/重新启动或重建项目做了工作wor我。

在我的Gradle项目中起作用的是在IntelliJ v2017的右上角的Gradle选项卡中“刷新所有Gradle项目”,使用如下所示的黄色标记按钮:

enter image description here

有同样的问题,直到我注意到src文件夹是标记为根源而不是java! 只更改为java (src/main/java)作为源根解决了我的问题 enter image description here < / p >

右键单击pom.xml文件,转到Maven,单击重新导入。我也有类似的问题,这个方法对我很有效。

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

经过长时间的搜索,我发现在一个maven项目中,我的机器上的一个依赖项以某种方式损坏了。奇怪的是,在编译后的java代码中,依赖项仍然正确地工作。然而,当我清理并重新构建maven依赖项缓存时,问题消失了,IntelliJ识别出了这个包。你可以通过运行:

mvn dependency:purge-local-repository

有趣的是,我的问题的根源不是IntelliJ,而是maven本身。

请尝试File->同步。然后在使IntelliJ失效之前关闭并重新打开。

一旦我重新开始。我会失效,但同步清除一切重新启动后。

在项目控制台中运行以下命令:

mvn idea:idea
< p >。 这个问题我遇到过很多次。尝试'Invalidate Cache &重启'和所有其他解决方案。运行这个命令对我来说非常有效。 我目前使用的是IntelliJ 2019.2,但在以前的版本中也发生了这种情况,解决方案也可以工作

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

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

在我的情况下,解决方案是将项目添加为maven项目,除了我作为maven项目导入的事实:P

转到pom.xml ->右键单击->添加为maven项目

对于2020.1.4终极版,我必须做以下工作

View -> Maven -> Generate Sources and Update Folders For all Projects

对我来说,问题是库没有被填充

. mvn -U clean install从终端

enter image description here

我的问题是我的Maven插件在更新后被禁用。我去求助->找到行动……→输入Maven,发现它是“off”。我点击了拨动开关,经过一些加载后,它被重新启用。

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

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

enter image description here

如何去除

enter image description here

enter image description here

尝试从上游清洁专家:

  mvn -U clean install

老问题,21回答。我遇到了我的go build将成功构建代码的问题,但我的Goland IDE显示缺少模块或依赖项。我尝试了无效缓存和重新启动,但有同样的问题。从另一个S/O线程,我尝试将GO111MODULE=添加到我的路径变量,但这也没有解决IDE问题。

对我有用的是在Preferences >中选择正确的GOROOT路径;Go祝辞GOROOT

我安装了两个版本的go,一个是自制的,一个是在线的go安装程序。我选择了brew安装路径,我的IDE能够正确地解析依赖项。

我已经尝试了所有复杂的方法,但它们都不起作用,因为我懒得重新导入项目,所以我尝试了其他方法。 我的是gradle项目,所以我去了我的gradle。构建文件,删除依赖项,刷新依赖项,然后再次添加依赖项,再次刷新依赖项,导入在那之后开始工作

面临类似的问题, 我更新了Intellij,错误开始出现-不能解析符号

去插件,更新插件&重新启动 问题解决了!!< / p >