You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Java 17切回Java 8后Gradle构建失败求助

问题描述

工作区原本基于Java 8 + Gradle 4.7运行,后续升级为Java 17 + Gradle 7.x及对应依赖库。现在切回Java 8与Gradle 4.7环境时,执行命令./gradlew npmInstallDefault --stacktrace出现构建失败,已尝试「Invalidate Caches」操作并删除.gradle、.idea和build文件夹,问题仍未解决。

错误信息

FAILURE: 构建因异常失败。

- 问题原因:
Could not create service of type ScriptPluginFactory using BuildScopeServices.createScriptPluginFactory().

Could not create service of type PluginResolutionStrategyInternal using BuildScopeServices.createPluginResolutionStrategy().

- 异常详情:
org.gradle.internal.service.ServiceCreationException: Could not create service of type ScriptPluginFactory using BuildScopeServices.createScriptPluginFactory().
        ...(省略中间堆栈信息)
Caused by: java.lang.NoSuchMethodError: 'java.lang.Class sun.misc.Unsafe.defineClass(java.lang.String, byte[], int, int, java.lang.ClassLoader, java.security.ProtectionDomain)'
        at org.gradle.internal.classloader.ClassLoaderUtils.define(ClassLoaderUtils.java:104)
        ...(省略剩余堆栈信息)

解决方案

1. 确认当前使用的JDK为Java 8

  • 终端执行以下命令,确保输出为Java 8版本:
    java -version
    javac -version
    
  • IDE配置:将项目SDK设置为Java 8,同时在Gradle设置中指定Gradle JVM为Java 8,避免IDE默认用高版本JDK运行Gradle

2. 彻底终止Gradle守护进程

Gradle守护进程可能残留高版本JVM环境,执行命令杀死所有守护进程:

./gradlew --stop

3. 清理全局Gradle缓存

删除用户目录下的全局Gradle缓存文件夹,避免缓存的高版本文件干扰:

  • Windows:C:\Users\<你的用户名>\.gradle
  • Linux/macOS:~/.gradle

4. 检查项目配置兼容性

确认build.gradle和settings.gradle中没有Gradle 7.x特有的配置(如新插件引入语法、依赖管理特性等),确保所有配置兼容Gradle 4.7。


内容的提问来源于stack exchange,提问作者Harish Dalmia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 13:47:50