Gradle 同步报错:找不到插件 org.gradle.toolchains.foojay-resolver-convention 版本 1.0.0?

新手上路,请多包涵

正在使用 Android Studio 同步一个名为 SmolChat-Android 的项目,构建时在 settings.gradle.kts 文件中遇到插件解析失败的错误。

错误信息如下:

Settings file 'E:\example\SmolChat-Android\settings.gradle.kts' line: 19
Plugin [id: 'org.gradle.toolchains.foojay-resolver-convention', version: '1.0.0'] was not found in any of the following sources:

- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Included Builds (No included builds contain this plugin)
- Plugin Repositories (could not resolve plugin artifact)
  Searched in: Google, MavenRepo, Gradle Central Plugin Repository

环境信息:

  • Gradle 版本:8.5(gradle-wrapper.properties 中配置)
  • Gradle 守护进程使用的 Java 版本:OpenJDK 11.0.20(./gradlew -version 输出)
  • Android Studio:Ladybug | 2024.2.1
  • 操作系统:Windows 11

问题背景:
这是一个 settings 插件(在 settings.gradle.kts 中声明,而不是在 build.gradle.kts 中)。我的 settings.gradle.kts 文件顶部配置如下:

pluginManagement {
    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
    }
}

plugins {
    // 第 19 行即为以下内容:
    id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0"
    id("com.android.application") version "8.2.0" apply false
    // ... 其他插件
}

已尝试的解决方案:

  1. 检查网络连接,浏览器可以正常访问 plugins.gradle.org。
  2. 停止 Gradle 守护进程(./gradlew --stop),删除 ~/.gradle/caches 缓存目录,重新同步,问题依旧。
  3. 在 Android Studio 中执行「File → Invalidate Caches and Restart」。
  4. 确认插件在 Gradle 插件门户上存在(1.0.0 版本发布于 2025 年 5 月 19 日)。

我的猜测:
该插件 1.0.0 版本要求运行 Gradle 的 Java 环境为 17 或更高版本,而我当前 Gradle 守护进程使用的是 Java 11。Java 版本不匹配是否会导致插件在「解析阶段」就失败,而不是在「执行阶段」才报错?

希望得到解答的问题:

  1. 运行 Gradle 的 Java 版本过低,是否会影响 settings 插件的下载和解析?
  2. 1.0.0 版本是否已经完全同步到所有镜像仓库?为什么网页能看到,本地却解析不到?
  3. 应该将插件降级到 0.9.0,还是升级运行 Gradle 的 JDK 版本(通过设置 JAVA_HOME 或 org.gradle.java.home)?

感谢各位的帮助

阅读 648
avatarAI BotBETA

问题分析与解决方案

1. Java 版本过低是否会影响插件解析?

是的org.gradle.toolchains.foojay-resolver-convention 插件的 1.0.0 版本要求 Java 17+ 环境官方文档)。

  • 解析阶段:Gradle 在解析插件时会检查其元数据,若插件要求更高 Java 版本,会在解析阶段直接失败(而非执行阶段)。
  • 当前环境问题:你使用的是 Java 11(OpenJDK 11.0.20),不满足插件要求。

2. 为什么插件在线可见但本地解析失败?

  • 镜像同步延迟:1.0.0 版本可能尚未完全同步到所有仓库镜像(如 MavenRepo),但主要原因是 Java 版本不兼容
  • Gradle 的行为:即使插件在仓库中存在,Gradle 也会因运行环境不满足条件而主动拒绝下载/解析,报错 "could not resolve plugin artifact"。

3. 如何解决?

强烈推荐升级 JDK 版本(而非降级插件):

步骤 1:升级运行 Gradle 的 JDK
  1. 下载 JDK 17

  2. 配置 Gradle 使用 JDK 17

    • 方式 A:设置环境变量
      在终端执行:

      export JAVA_HOME=/path/to/jdk-17  # Linux/macOS
      set JAVA_HOME=C:\path\to\jdk-17   # Windows
    • 方式 B:在 gradle.properties 中添加:

      org.gradle.java.home=C:\\path\\to\\jdk-17  # Windows 路径用双反斜杠
    • 方式 C:在 Android Studio 中设置:
      File → Settings → Build, Execution, Deployment → Build Tools → Gradle → Gradle JDK → 选择 JDK 17。
步骤 2:验证配置
  • 在终端运行:

    ./gradlew --version

    确保输出中的 JVM 显示 Java 17:

    JVM:           OpenJDK 64-Bit Server VM (JetBrains s.r.o. 17.0.10)
步骤 3:重新同步项目
  • 清除缓存后重新同步:

    ./gradlew --stop
    rm -rf ~/.gradle/caches   # 或手动删除 Windows 的 C:\Users\<user>\.gradle\caches
  • 在 Android Studio 点击 Sync Project

替代方案(不推荐)

若无法升级 JDK,可降级插件版本(但可能引发兼容性问题):

  1. settings.gradle.kts 中修改插件版本:

    id("org.gradle.toolchains.foojay-resolver-convention") version "0.9.0" // 支持 Java 11
  2. 重新同步项目。

    ⚠️ 注意:0.9.0 缺少 1.0.0 的新特性/优化,且后续 Gradle 版本可能不再兼容。

总结

问题根因解决方案验证方式
Java 11 不满足插件要求升级到 JDK 17+./gradlew --version 显示 Java 17
镜像同步延迟(次要)升级 JDK 后自动解决重新同步项目无报错

升级 JDK 是根本解决方法,降级插件是临时规避。完成后项目应正常同步。

1 个回答

你好,这个报错通常是镜像源里没有这个插件,或者 Gradle 版本太旧。你把 settings.gradle 里的 plugins 模块截图发我看看?我直接给你改好的代码,5分钟帮你同步成功。