【Flutter】解决构建报错Build was configured to prefer settings repositories over project repositories
记录一个搭建Flutter+Gradle开发环境遇到的问题:
Build was configured to prefer settings repositories over project repositories but repository ‘maven’ was added by settings file ‘settings.gradle.kts’
1 背景
我参考flutter开发环境搭建做好了系统配置,然后启动调试超时卡在下载Gradle:
Launching lib\main.dart on 运行设备名称 in debug mode...
Running Gradle task 'assembleDebug'...
再参考解决flutter启动超时做了项目镜像配置,然后就触发了题目的报错:
Build was configured to prefer settings repositories over project repositories but repository 'maven' was added by settings file 'settings.gradle.kts'
2 错误尝试
这个问题困扰我非常久,几乎没人遇到这种情况(原因太特殊),报错的意思是我的项目里存在settings.gradle.kts 之外的仓库定义,导致了下载仓库冲突。
- GPT等ai一顿胡诌说
build.gradle或build.gradle.kts里面的repos应该删掉,事实上这是flutter create的标准文件啊,错误不可能在此
2.ai还在我的settings.gradle.kts中添加:
dependencyResolutionManagement {
// 禁用"优先使用settings仓库"的检查
repositoriesMode.set(RepositoriesMode.PREFER_PROJECT) // 增加这1行
repositories {
...
这样并不会生效。Flutter SDK 在 flutter/packages/flutter_tools/gradle/settings.gradle.kts 中也设置了 repositoriesMode = RepositoriesMode.FAIL_ON_PROJECT_REPOS会形成冲突
- 尝试了篡改flutterSDK来覆写
repositoriesMode,也无效
3 解决方案
排除下面官方内容不可能有问题,那问题只在我本地了
- flutterSDK
- flutter create初始化的默认项目
- Gradle发行版
- jdk环境
核查过程中,在gradle安装位置发现了我以前装Gradle环境残留的一个文件init.gradle,用于设置全局脚本,在构建时自动注入国内仓库配置。而flutterSDK新版默认的repositoriesMode形成了冲突。
删除init.gradle文件后,问题解决!
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)