【问题标题】:IntelliJ Code Completion not working for new Java classesIntelliJ 代码完成不适用于新的 Java 类
【发布时间】:2014-05-04 23:55:20
【问题描述】:

IntelliJ IDEA 13 在我的本地设置中开始表现出非常奇怪的行为。

也就是说,在添加到现有项目的任何新 Java 类中,Code Completion 不起作用。因此,在新类中声明任何类型的对象变量,然后键入该变量的名称,后跟点 (.) 后,不会针对相应对象的任何方法提出建议。

例如声明后

File f = new File("/home");

键入f. 不会显示File 类中所有方法的列表,以便从中选择一个。事实上,当键入点 (.) 时,不会出现任何建议,并且在 IDE 窗口的左下角(在状态栏中),会显示消息“应使用标识符。应使用标识符”。被陈列。有时,会从不相关的组件或库中提出一长串完全不相关的方法。

奇怪的是,如果上述声明发生在任何现有类中,Code Completion 会按预期工作。

在机器重新启动、IDE 重新启动、项目重新导入、关闭/重新打开或重建的多种组合之后,此行为仍然存在。

有什么想法吗?

【问题讨论】:

  • 您是否尝试重新启动您的电脑?或者重新安装你的IDE?还是清理你的项目?
  • 我已经尝试了很多这样的解决方法,比如卸载并重新安装 IntelliJ。
  • 你有什么理由使用这样的IDE吗?为什么不用NetBeans或者其他支持更好的著名IDE?
  • 有很多原因,但这不是重点。毕竟,IntelliJ 是一个众所周知的 IDE。 :-)

标签: java intellij-idea code-completion


【解决方案1】:

确保在文件 -> 项目结构 -> 模块中标记所有源目录。

【讨论】:

  • Modules 后我进入 src 文件夹并将其标记为 Source,它为我启用了自动代码完成。
  • 谢谢,这对我有用。文件 -> 项目结构 -> 模块 -> 点击你的项目 -> 标记为:来源
【解决方案2】:

确保您在运行 IntelliJ 时未处于省电模式(文件 [菜单] -> 省电模式是否选中)。如果启用省电模式,IntelliJ 将不会运行background tasks, including code completion

【讨论】:

  • 那么它根本不会提供自动补全功能,不仅对新类,不是吗?
  • 否;如果完全打开省电模式,则代码完成不会起作用。在 IDEA 中打开的所有文件都是全局的。
  • 正确。就我而言,代码完成在现有类中按预期工作,但在任何新类中都没有。 IDE 无论如何都没有处于省电模式。 :-)
  • 谢谢。我在想法、maven 和项目方面遇到了重大问题,这解决了所有问题。我不小心启用了省电模式,但我不知道它已打开。
【解决方案3】:

对于追随者来说,帮助我的一件事(自动完成仅显示演员表) 场地 实例 等等)是我打开了一个 maven 模块,它没有正确链接到它的子模块(它有一个注释掉的子模块部分),所以 IntelliJ 只是将 maven java 文件显示为基本上带有一个小“j”的“文本”文件在项目窗格中的图标中。修复根 maven pom.xml 文件以将子目录包含为模块,瞧,它们再次被视为真正的 java 文件,哇!

【讨论】:

  • 我的问题也可能是这种情况,因为问题在某个时候得到了解决,可能是在将 POM 文件链接到其父文件之后。谢谢和+1。 :-)
  • 我遇到了同样的问题,你的建议启发了我去解决它。谢谢!和+1。我所做的是从 Project 部分删除 maven 项目,然后再次添加它,然后它就可以工作了。我想我在某个时候接受了一个建议 Maven 配置的菜单。
  • 感谢您的帮助,在项目窗格中也看到了小“j”,并意识到问题
【解决方案4】:

我正在使用 IntelliJ Ultimate 2017.1,我遇到了类似的问题。 Maven 项目,正在尝试使用 selenium API,但智能感知没有为我弹出相关方法。

这是我解决问题的方法:

右键单击您的项目 src 文件夹
选择Mark Directory As 然后选择Sources Root

【讨论】:

  • 这就是我的解决方案。我的 Java 文件上有这个小“J”。但是为什么会这样呢?
  • 这可能不是首选的答案,但即使对于那些没有 maven 项目并且无法修复他们的 pom 文件的人来说,它也可以正常工作。
【解决方案5】:

我也遇到了同样的问题,这是因为我没有将文件夹标记为源根目录。

右键单击您的 src 目录并将目录标记为 > Sources Root。

【讨论】:

  • 忍不住说“谢谢!” .事实上,如果您没有使用任何花哨的依赖工具,这似乎是最常见的原因:-)
【解决方案6】:

它帮助我将 src 目录标记为“Source Root”。

【讨论】:

    【解决方案7】:

    在根文件夹中剪切文件夹 .idea 和文件 *.iml 并粘贴到项目之外的其他位置。当您重新打开项目时,自动导入将再次神奇地工作。

    【讨论】:

      【解决方案8】:

      您的问题可能有 2 个原因

      1. 在您的构建 java 构建路径中未正确配置源文件夹。如果源文件夹配置不正确,自动完成将无法获得所需的类定义,并且您的项目的自动完成将失败。
      2. 在“Windows > 首选项 > Java > 编辑器 > 内容辅助 > 高级”中恢复默认选项

      【讨论】:

        【解决方案9】:

        右键项目->添加框架支持->选择Maven->点击确定

        【讨论】:

          【解决方案10】:

          唯一对我有用的是杀死 IntelliJ(在 Ubuntu 上)并重新启动它。

          【讨论】:

            【解决方案11】:

            这不是 IntelliJ 13,而是更新的 2017.1.1 社区版本。在此处添加此答案,以便其他人受益于源于 Gradle 配置的原因。

            现在,在我的情况下,自动完成、生成覆盖方法和其他功能也不起作用。我发现在我的项目设置中,我对 gradle 模块有多种配置。当我清理其余模块并保留该项目所需的唯一一个(除了测试)时,所有行为都恢复正常。

            同样在 Gradle 项目的这种情况下,请记住标记所有 sourceSet 根文件夹和 Source 文件夹。

            编辑:如果您不想为每个 sourceSet 创建多个配置并且您正在导入一个 gradle 模块,那么在导入屏幕上,您还应该禁用 Create a module for per sourceSet 标志。没有这个,我不得不在导入模块后删除多个模块。

            【讨论】:

              【解决方案12】:

              它发生在一个未添加到父项目 pom 中的模块中(他们是故意这样做的),这就是原因,我右键单击有问题的模块的 pom.xml 并单击

              现在自动完成功能来了,除此之外,我可以在右上角的 maven 选项卡中将模块视为一个单独的项目。

              【讨论】:

                【解决方案13】:

                我在为 eclipse-che 客户端扩展编码时遇到了这个问题。 Eclipse che 模块都是 maven 类型的。我的客户端扩展项目是一个独立的模块,可以独立于父项目进行编译。当我将相同的结构导入 Intellij 时,我的客户端扩展项目没有给出建议。在我将客户端扩展项目包含到父模块(将其添加到 pom.xml)之后,建议开始出现。

                【讨论】:

                • 这不是答案,请更具体地说明如何解决问题。
                【解决方案14】:

                Settings>Editor>General>Auto Import>Java>Exclude from Import and Completion 中删除您的包

                我遇到了这个问题。这篇文章中的解决方案都不起作用,但我能够修复它,因为我不小心将我的项目包放在“从导入和完成中排除”设置中。

                【讨论】:

                  【解决方案15】:

                  我有一个 groovy 项目,其中 jdk 未设置为依赖项,因此 jdk 类不会自动完成。

                  修复:

                  1. 项目结构
                  2. 模块
                  3. (你的模块)
                  4. 选项卡依赖项。
                  5. 在字段 Module SDK 中,添加一个 jdk。

                  【讨论】:

                    【解决方案16】:

                    我有类似的问题,这个主题没有任何帮助。

                    所以最后我成功了,我清除了 IntelliJ 的缓存并重新启动。

                    文件 > 使缓存无效/重新启动.. > Invalidate Cache and Restart(按钮)

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 2022-01-02
                      • 1970-01-01
                      • 2015-02-01
                      • 2017-08-22
                      • 2014-06-04
                      • 2014-10-20
                      • 1970-01-01
                      相关资源
                      最近更新 更多