新建Flutter应用构建报错:build script中subprojects已被使用
解决Gradle报错“subprojects has already been used in this build script”的思路
- 定位重复定义:打开项目根目录的
build.gradle文件,全局搜索subprojects,确认是否存在多个subprojects闭包定义——Gradle不允许在同一个构建脚本里重复声明这个闭包。 - 合并重复配置:如果找到多个
subprojects,把它们内部的配置代码合并到同一个闭包中。示例:
原重复代码:
合并后:subprojects { repositories { google() mavenCentral() } } subprojects { tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } }subprojects { repositories { google() mavenCentral() } tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } } - 排查依赖注入冲突:如果是新增依赖后出现的问题,暂时注释掉最近添加的Flutter插件或第三方依赖,重新构建排查冲突源,找到后要么替换依赖,要么调整依赖的配置逻辑。
- 清理缓存重试:执行
flutter clean命令,删除android/.gradle目录,再运行flutter run重新构建。 - 版本兼容性检查:如果是新建项目就报错,尝试升级Flutter到稳定版,或者调整根目录
build.gradle中Gradle插件版本(比如将classpath 'com.android.tools.build:gradle:x.x.x'改为Flutter官方推荐的对应版本)。
内容的提问来源于stack exchange,提问作者Hadil Kraiem
相关产品推荐
相关产品推荐

