Flutter项目报错找不到GradleWrapperMain主类如何解决
Could not find or load main class org.gradle.wrapper.GradleWrapperMain 排查修复方案 这个报错核心原因是项目内Gradle Wrapper的依赖jar包缺失/损坏,或者Gradle、Java版本不匹配,按以下步骤逐一排查修复:
- 清理损坏的配置文件
进入项目的android目录,删除以下异常生成/损坏的内容:- 整个
gradle/wrapper/文件夹 - 根目录下的
gradlew、gradlew.bat执行脚本 - 之前执行
gradle init生成的冗余配置文件(按文件修改时间判断,删除你执行init命令时新生成的build.gradle、settings.gradle,注意不要误删Flutter项目原生自带的原有配置)
- 整个
- 重新生成匹配版本的Gradle Wrapper
先确认版本匹配关系:先查看android/build.gradle中声明的com.android.tools.build:gradle插件版本,对照兼容规则选择对应Gradle版本(例如AGP7.3对应Gradle7.5、AGP8.0对应Gradle8.0),不要直接用最新版Gradle。
在android目录下执行命令,将命令中<适配的版本号>替换为你查到的对应版本:
执行完成后确认gradle wrapper --gradle-version <适配的版本号>gradle/wrapper/gradle-wrapper.jar文件存在,这个文件就是报错中提到的主类所在的依赖包,之前的报错基本都是这个文件缺失或下载损坏导致的。 - 校验运行环境
- Mac/Linux系统先给执行脚本加权限:
chmod +x gradlew - 校验JDK版本匹配:Gradle 7.x 需搭配JDK 11运行,Gradle 8.x需搭配JDK 17运行,执行
java -version确认当前终端使用的JDK版本符合要求,不要用过高或过低的JDK版本。
- Mac/Linux系统先给执行脚本加权限:
- 清缓存重试运行
回到Flutter项目根目录依次执行:flutter clean flutter pub get flutter run
注意:不要在Flutter项目的android目录随意执行
gradle init,该命令是为原生Java/Kotlin新项目初始化Gradle配置用的,执行后会覆盖Flutter预设的Gradle配置,反而会引发更多配置冲突。
如果以上步骤执行后仍报错,检查本地全局Gradle配置(用户目录下.gradle/gradle.properties)中的代理、私有镜像配置是否异常,这类配置会导致wrapper依赖包下载失败,临时注释相关配置后重新执行wrapper生成命令即可。
内容的提问来源于stack exchange,提问作者Kiko
相关产品推荐
相关产品推荐

