Flutter默认新项目Android编译报错:settings.gradle仓库配置冲突
解决Flutter Android构建报错:仓库优先级冲突问题
问题分析
报错核心是Gradle仓库优先级配置冲突:Build被设置为优先使用settings层级的仓库,但解析dev.flutter.flutter-plugin-loader插件时,settings.gradle中的仓库配置触发了规则冲突,加上国内网络环境下的镜像配置,导致插件无法正常拉取。桌面和Web端不受影响是因为它们的构建流程不依赖Android Gradle插件体系。
解决方案
方案1:调整settings.gradle的仓库配置(优先推荐)
修改项目下android/settings.gradle文件的pluginManagement仓库块,将清华镜像仓库前置,确保Gradle优先从国内镜像拉取资源,同时兼容Gradle 8.x的规则:
pluginManagement { def flutterSdkPath = { def properties = new Properties() file("local.properties").withInputStream { properties.load(it) } def flutterSdkPath = properties.getProperty("flutter.sdk") assert flutterSdkPath != null, "flutter.sdk not set in local.properties" return flutterSdkPath }() includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") repositories { // 添加清华镜像仓库,前置优先 maven { url 'https://mirrors.tuna.tsinghua.edu.cn/gradle-plugin-portal/' } maven { url 'https://mirrors.tuna.tsinghua.edu.cn/maven2/' } maven { url 'https://mirrors.tuna.tsinghua.edu.cn/google' } // 保留原仓库配置 gradlePluginPortal() google() mavenCentral() } } plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "8.1.0" apply false id "org.jetbrains.kotlin.android" version "1.8.22" apply false } include ":app"
方案2:清除Gradle缓存并重新构建
如果方案1无效,尝试清理缓存重置构建状态:
- 执行命令:
flutter clean - 删除项目目录下的
android/.gradle文件夹 - 执行
flutter pub get拉取依赖 - 重新运行
flutter run或flutter build apk
方案3:检查local.properties配置
确认android/local.properties中的flutter.sdk路径正确,路径中不要包含空格或中文特殊字符,示例:
flutter.sdk=C:\\flutter
验证
修改完成后,重新启动Android模拟器或执行构建命令,若报错消失则说明问题解决。
内容的提问来源于stack exchange,提问作者Limmy
相关产品推荐
相关产品推荐

