IntelliJ IDEA 中带有 Gradle 的 Java 项目:无法解析符号“google”但项目编译

Posted

技术标签:

【中文标题】IntelliJ IDEA 中带有 Gradle 的 Java 项目:无法解析符号“google”但项目编译【英文标题】:Java project with Gradle in IntelliJ IDEA: cannot resolve symbol 'google' but project compiles 【发布时间】:2014-08-27 08:35:08 【问题描述】:

我在 IntelliJ IDEA 13.1.2 中使用 Gradle 设置了一个玩具 Java 项目。它编译并运行良好,但 IDE 突出显示 'google' in

import com.google.common.base.Strings;

显示为红色并警告“无法解析符号 'google'”。知道如何解决吗?

我尝试过 1)删除 .idea/ 并在 IntelliJ IDEA 中重新创建项目,以及 2)从手动创建的 Gradle 配置文件 build.gradle 重新导入项目,但无济于事。

【问题讨论】:

查看你的IDEA项目的依赖和工件。 How do I get IntelliJ to resolve Gradle dependencies for custom source sets? 的可能重复项 gradle有一个“idea”插件,见上面链接的问题 【参考方案1】:

我认为用户 Sap 是正确的,至少在我的情况下是这样。您不必手动添加依赖项。

你是否在不同步 intellij 的情况下更改了 gradle 文件中的依赖项?试试这个按钮:

有关详细信息,请参阅: https://www.jetbrains.com/idea/help/synchronizing-changes-in-gradle-project-and-intellij-idea-project.html

【讨论】:

这对我不起作用。只有“使缓存无效并重新启动”有效。 ^ IntelliJ 中的文件下拉菜单【参考方案2】:

检查this。

您可以在 [View] - [Tool Windows] - [Gradle] 上简单地打开 Gradle 工具窗口。

在窗口中,您可以通过单击刷新按钮进行刷新。

所有手动直接添加到build.gradle文件中的依赖都将被解析。

【讨论】:

【参考方案3】:

在尝试了互联网上列出的所有方法来解决此问题后,对我有用的解决方案之一是安装 lombok 插件。

转到文件 --> 设置 --> 插件并查找 Lombok。

Make sure the "Enable annotation processing" is ticked

【讨论】:

感谢提供链接【参考方案4】:

我的 Gradle 项目使用的是 Intellij 2019.2.3,File->Invalid Cache/Restart... 不起作用,但 View->Tool Windows->Gradle->sync(the circular icon) 立即起作用。

【讨论】:

【参考方案5】:

就我而言,我必须执行以下操作:

关闭项目 关闭思路 删除.idea项目目录 删除(idea.system.path)目录 开始构思

您可以在这里找到您的idea.system.path:https://intellij-support.jetbrains.com/hc/en-us/articles/206544519-Directories-used-by-the-IDE-to-store-settings-caches-plugins-and-logs

【讨论】:

这是唯一对我有用的东西,除了我没有 idea.system.path 目录(v2021.2.1 Ultimate)【参考方案6】:

原来在IntelliJ IDEA中除了build.gradle之外还需要单独指定依赖包,并显式添加为依赖包。即,

    在the instruction in documentation之后下载com.google.guava包——我选择com.google.guava:guava-base:r03下载 按照自动提示的窗口将其作为项目库添加​​到 Java 项目中。 在项目设置中指定Java模块依赖com.google.guava包。请参阅文档说明"Configuring Module Dependencies and Libraries"。

【讨论】:

不确定是否理解得很好,但将 gradle 项目导入 IntelliJ 效果很好 - 建议使用 gradle 包装器。 这不是否定了使用 gradle 的全部意义吗? 这个链接解决了我遇到的同样的问题jetbrains.com/idea/help/… 这是唯一对我有用的解决方案/描述(IntelliJ 14.1.2):***.com/a/31195053/2584278【参考方案7】:

帮助我检查“项目设置/模块”部分中的“依赖项”。显然,Idea 没有正确拾取它们。

对我有用的步骤:

    从“项目设置/模块”中删除所有模块 从 Gradle 插件刷新项目 - 触发模块生成

这个技巧帮助我生成了具有正确依赖关系的模块。 可能是因为最初,我将该项目作为非 Gradle 导入。

【讨论】:

这也是为我做的,对于那些不知道的人,你可以在文件 -> 项目结构 -> 项目设置/模块下找到它。然后删除那里的所有模块。【参考方案8】:

在我的情况下(Apache Beam 来源)需要./gradlew clean

【讨论】:

【参考方案9】:

在我的情况下,我已将 Gradle 版本(模块:项目)从 3.2.2 更新到 3.5.2,并且 NDK 文件位置存在问题,它位于错误的路径上,我刚刚将其切换到默认的NDK路径,然后使项目失效并重新启动。

【讨论】:

【参考方案10】:

我的导入有误。请检查您的导入是否正确。如果您使用以下方式导入:

import org.junit.Test 

并且您在类路径中有org.junit.jupiter.api.Test,请尝试使用:

import org.junit.jupiter.api.Test;

【讨论】:

以上是关于IntelliJ IDEA 中带有 Gradle 的 Java 项目:无法解析符号“google”但项目编译的主要内容,如果未能解决你的问题,请参考以下文章

导入 Gradle 项目到 IntelliJ IDEA

intellij idea 怎么gradle创建spring boot

intellij idea 2017 gradle构建spring-boot web项目

IntelliJ IDEA如何导入Gradle项目

无法在 intellij idea 中使用 gradle 构建 javafx 项目

IntelliJ IDEA 和 Gradle - 不能应用于“(groovy.lang.Closure)”