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

无法编译任何Flutter项目:‘gradle:compileGroovy’错误

Flutter编译报错:Could not find or load main class GradleWorkerMain

错误信息

编译任意Flutter项目(包括刚创建的新项目)都会弹出以下错误:

Error: Could not find or load main class worker.org.gradle.process.internal.worker.GradleWorkerMain
Caused by: java.lang.ClassNotFoundException: worker.org.gradle.process.internal.worker.GradleWorkerMain
Could not write standard input to Gradle Worker Daemon 1.
  • 触发失败的任务::gradle:compileGroovy
  • 系统附加提示:

Gradle Worker Daemon启动失败,进程'Gradle Worker Daemon 1'以非零退出值1结束

当前环境配置

  • JDK 20
  • Gradle 8.1
  • Flutter 3.19
  • 已尝试无效方案:删除本地.gradle目录、重装Gradle、重装JDK

可行解决方案

1. 降级JDK到17

Gradle 8.1虽官方宣称支持JDK 20,但实际场景中存在Worker Daemon的兼容性bug,降级到长期支持的JDK 17基本能解决问题:

  • 卸载当前JDK 20,安装JDK 17(OpenJDK或Oracle JDK都可以)
  • 把系统环境变量JAVA_HOME指向JDK 17的安装路径,确保PATH里JDK 17的优先级最高
  • 重启终端或IDE,重新执行flutter run

2. 给项目单独指定JDK版本

不想全局修改JDK的话,可在Flutter项目里配置Gradle单独用JDK 17:

  • 打开项目根目录下的android/gradle.properties文件,添加一行配置:
org.gradle.java.home=/你的JDK17安装路径
  • 把/你的JDK17安装路径替换成实际的路径,比如Windows下C:\Program Files\Java\jdk-17.0.9,Mac下/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home

3. 临时禁用Gradle Worker Daemon

紧急调试时可以直接禁用Worker Daemon绕过问题:

  • 编译时加参数执行:
flutter run --no-daemon
  • 或者在android/gradle.properties里添加配置永久禁用(不推荐长期用,会降低编译速度):
org.gradle.daemon=false

4. 调整Gradle的JVM内存参数

部分情况是Worker Daemon启动时内存不足导致类加载失败,可增大JVM参数:

  • 在android/gradle.properties里添加:
org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=512m

内容的提问来源于stack exchange,提问作者Ashtar Ammar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 12:16:15