java - library - Intellij无法在导入时解析符号




intellij import jar (17)

@Anton Dozortsev我因类似的行为而发疯; 我结束了很多次重新安装IDE的工作,直到删除IDEA应用程序,所有缓存,首选项等之后,问题才得以解决。

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

原来,问题出在IntelliJ的 idea.max.intellisense.filesize 设置。 我将其设置为100KB,小于依赖项的大小,导致IntelliJ将其显示为未知,就像您的屏幕快照一样。

固定:

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

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

对于不同的库和不同的项目,此问题间歇地发生。 尝试导入库时,将识别包,但无法解析类名。

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

我已经尝试使缓存无效,无法正常工作。 我找不到任何类冲突-在我的类路径中没有其他具有相同包名的jar文件。 我可以将此类导入其他项目。

请查看屏幕截图:

有人知道吗?


File-> Invalidate Caches / Restart and Build your project


可能有多种原因。 就我而言,这是错误的根源问题。 无效的缓存无法与其他解决方案一起使用。

检查模块源根。

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

  2. 模组

  3. 选择您的问题模块。

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

  5. 删除不需要的源根。 保留一个并在此根中添加src并测试源根。


右键单击pom.xml文件,转到Maven,然后单击“重新导入”。 我有类似的问题,这对我有用。


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

mvn idea:idea

做完了 曾多次发生此问题。 尝试了“使缓存无效并重新启动”和所有其他解决方案。 运行该命令对我来说很完美。 我当前正在使用IntelliJ 2019.2,但这在以前的版本中也发生过,并且解决方案也能正常工作。


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

然后重建gradle和bam问题解决。


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

文件->使缓存无效/重新启动


我发现 @jossef-harush 和 @matt-leidholm 的以下答案 在另一个链接中 很有用

  • 在IntelliJ编辑器中,单击红色的关键字 (例如 Integer ,然后按 ALT + ENTER (或单击灯泡图标)
  • 从意图菜单中选择 Setup JDK

  • 点击 Configure

  • 就我而言, JDK 路径不正确(指向 /opt/jdk1.7.0_51 而不是 /opt/jdk1.7.0_65

  • 单击 ..., 然后浏览到正确的 JDK 路径

  • 让我们清除缓存


我尝试使缓存无效并重新启动,但对我而言唯一有效的方法是彻底清除.idea目录,然后从头开始创建新项目。


我找到了原因!

在我的情况下,我添加了一个包含一些Java源文件的jar文件,但我认为Java源是不好的,在Intellij Idea依赖库中,它会自动添加源,因此在编辑器中,导入是BAD,只需删除“项目结构”->“库”,对我有用。


我遇到了同样的问题,其原因是该项目来源的标记不正确。

我手动创建了根目录内容,却没有注意到 src/main/test 文件夹被标记为 Sources 而不是 Tests 。 因此,这就是为什么我的测试类被假定具有其所有测试库( JUnitMockito 等)都属于Compile(而不是Test)范围的原因。

我将 src/main/test 标记为Tests并重新构建模块后,所有错误均消失了。


我遇到了类似的问题,迈克的评论帮助我朝着解决这个问题的方向前进。
尽管所需的库也是我项目中模块的一部分,但它需要更改范围。 在模块依赖性中,我将 范围 更改为“ Compile ”,而不是“ Test ”,现在它对我来说很好用。


简单重启对我有用。

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

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


经过长时间的搜索,我发现某个Maven项目中的计算机上的某种依赖关系被破坏。 奇怪的是,依赖项在已编译的Java代码中仍然可以正常工作。 但是,当我清理并重建我的Maven依赖项缓存时,问题消失了,并且IntelliJ识别了该程序包。 您可以通过运行以下命令执行此操作:

mvn dependency:purge-local-repository

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


请尝试“文件”->“同步”。 然后关闭并重新打开IntelliJ,然后再使它们无效。

一旦我重启。 我本来是无效的,但是重新启动后同步清除了所有内容。


遇到同样的问题,直到我注意到 src 文件夹被 标记为root源 而不是 java ! 更改为仅将Java(src / main / java)作为源根解决了我的问题


文件->使缓存无效/重新启动 或重建项目 无法 正常工作。

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





classpath