首页 文章

Intellij无法在导入时解析符号

提问于
浏览
72

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

如果在import语句中,我看到所有反编译的类显示在侧窗格中 - 包括我需要的那些 - 如果我尝试自动完成import语句,我注意到我需要的类没有在下拉菜单 .

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

请看屏幕截图:

enter image description here

enter image description here

有人有线索吗?

22 回答

  • 0

    我的导入Maven项目遇到了类似的问题 . 在一个模块中,它无法在导入时解析其他模块的一部分(是的,可以解析该模块的一部分) .

    我变了“Maven主目录”到更新的版本解决了我的问题 .

    更新:好一小时,回到破碎状态......

  • 0

    我找到了原因!

    在我的情况下,我添加一个jar文件包含一些java源文件,但我认为java源码不好,在Intellij Idea依赖库中它自动添加源码,所以在Editor中导入是BAD,只需删除“项目结构“ - >”图书馆“,它适合我 .

  • 7

    它对我来说是编辑.idea文件夹中的包文件,因为我意外地将源添加到此jar库并且android无法通过删除b / m图片library error中标记的源行来解析它 .

    然后重建gradle和bam问题解决了 .

  • 1

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

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

  • 1

    这可能有多种原因 . 在我的情况下,它是错误的源根问题 . 无效缓存无法与其他解决方案一起使用 .

    检查模块源根 .

    • 项目结构(Ctrl Alt Shift S) .

    • 模块

    • 选择您的问题模块 .

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

    • 删除不需要的源根 . 保留一个并在此根目录中添加src和测试源根 .

  • 3

    我遇到了类似的问题,Mike的评论帮助我朝着解决它的方向前进 .
    虽然所需的库也是我项目中模块的一部分,但它需要更改范围 . 在模块依赖项中,我将 scope 更改为“ Compile " rather than " Test ”,现在它对我来说很好 .

  • 28

    检查模块依赖性 .

    • 项目结构(Ctrl Alt Shift S) .

    • 模块

    • 选择您的问题模块 .

    • 窗口"Dependencies"顶部的更改选项卡 .

    • 检查需要的库(可能需要在选项卡'libraries'中添加指定的库)或模块已在此处列出且它具有正确的范围(主要是'complile') .

  • 0

    IntelliJ在解决依赖关系方面存在问题 . 请尝试以下方法:

    • 右键单击pom.xml - > Maven - > Reimport

    • 再次右键单击pom.xml - > Maven - >生成源和更新文件夹

  • 0

    文件 - >无效缓存/重新启动或重建项目确实 not 工作了 .

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

    enter image description here

  • 9

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

  • 8

    当我尝试构建一个新的java项目时,我也多次遇到此错误 .

    Below is the step how I got this stupid issue.

    • 创建一个空项目,并创建新目录 src/main/java .

    • 创建源包 net.gongmingqm10.sketch .

    • 使用 gradle wrappergradle idea 为项目构建gradle资料 .

    • build.gradle 文件中添加一些依赖项,并在 gradle build 中重新导入项目 .

    • 在现有包中创建 User.javaSchool.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目录下导入文件 .

  • 1

    我发现以下答案来自@jossef-harush@matt-leidholm有用from another link

    在IntelliJ编辑器中

    • ,单击红色关键字(例如 Integer )并按ALT ENTER(或单击灯泡图标)

    • 从意图菜单中选择 Setup JDK

    IntelliJ intentions menu

    • 点击 Configure

    Project SDK selection dialog

    • 在我的情况下, JDK 路径不正确(指向 /opt/jdk1.7.0_51 而不是 /opt/jdk1.7.0_65

    Broken Configure SDK dialog

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

    Fixed Configure SDK dialog

    • 让我们清除缓存

    IntelliJ File menu

  • 0

    右键单击pom.xml文件,转到Maven,单击Reimport . 我有类似的问题,这对我有用 .

  • 143

    简单重启对我有用 .

    我建议先尝试重启,然后你可以选择使缓存无效 .

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

  • -1

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

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

    一旦我将 src/main/test 标记为测试并重建模块,所有错误都消失了 .

  • 1

    @Anton Dozortsev我被一种类似的行为吓到了;我最终重新安装了IDE很多次,只是在删除IDEA应用程序,所有缓存,首选项等后才解决问题 .

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

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

    固定:

    • 单击“帮助” - >“编辑自定义属性”

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

  • 0

    我最近在尝试使用Intellij处理NiFi时遇到了这个问题,原来问题是NiFi要求Maven> = 3.1.0并且我检查的版本(我猜我的默认值)是3.0.5 . 更新项目的Maven版本修复了它,所以在某些情况下,Maven版本的错误对齐可能是一个看起来的东西...我猜这是相当不寻常的,但如果你在线程上得到这么远,你可能有一个异常问题:)

  • 0

    文件 - >使缓存无效/重新启动并构建项目

  • 0

    一样的问题 . 如果这些方法不起作用 . 您可以尝试从本地maven存储库中删除lib,然后重新导入到pom .

    mvn repository

    最后它对我来说很好 .

    project

  • 0

    有同样的问题,直到我注意到 src 文件夹是 marked as root source 而不是 java !改为只有java(src / main / java)作为源根解决了我的问题
    enter image description here

  • 0

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

  • 0

    缺少 io ?试试 import org.openide.util.io.ImageUtilities .

相关问题