Flutter 替换镜像源
一、核心镜像替换(针对 Maven 仓库)
Flutter 依赖的 Google Maven 仓库(https://maven.google.com
或 https://dl.google.com/dl/android/maven2
)可替换为国内镜像,常见的有:
阿里云镜像(推荐)
将 Google 仓库替换为:https://maven.aliyun.com/repository/google
华为云镜像
替换为:https://repo.huaweicloud.com/repository/maven/
二、具体配置方法
1. 全局 Gradle 配置(推荐,影响所有项目)
修改 Gradle 全局配置文件,让所有 Flutter/Android 项目默认使用镜像:
Windows:
C:\Users\<你的用户名>\.gradle\gradle.properties
Mac/Linux:
~/.gradle/gradle.properties
在文件中添加以下内容(配置代理和镜像):
# 阿里云镜像配置
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }# 若需要代理(可选)
systemProp.http.proxyHost=127.0.0.1
systemProp.http.proxyPort=你的代理端口
systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=你的代理端口
2. 项目级配置(仅当前项目生效)
如果只想针对单个 Flutter 项目修改,需编辑项目中的 Gradle 配置:
打开 Flutter 项目目录下的
android/build.gradle
文件。找到
allprojects
块中的repositories
,替换 Google 仓库地址:
allprojects {repositories {// 替换原 Google 仓库maven { url 'https://maven.aliyun.com/repository/google' }maven { url 'https://maven.aliyun.com/repository/jcenter' }mavenCentral()// 保留其他必要仓库(如本地仓库)maven { url "$flutterRoot/packages/flutter_tools/gradle/maven_repo" }jcenter() { url "https://maven.aliyun.com/repository/jcenter" }}
}
3. Flutter 引擎镜像(针对 flutter doctor
检查的引擎资源)
若 flutter doctor
卡在下载 Flutter 引擎(如 https://storage.googleapis.com/
相关资源),可配置 Flutter 镜像源:
临时生效(每次终端执行):
# 阿里云 Flutter 镜像 export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn export PUB_HOSTED_URL=https://pub.flutter-io.cn
永久生效(推荐):
Windows:在 “环境变量” 中添加上述两个变量(值同上)。
Mac/Linux:编辑
~/.bash_profile
或~/.zshrc
,添加上述两行,然后执行source ~/.bash_profile
(或对应配置文件)生效。
三、验证配置是否生效
执行
flutter clean
清除缓存。重新运行
flutter doctor
,观察是否仍有 Google API 相关错误。若涉及项目依赖下载,可执行
flutter pub get
或cd android && ./gradlew clean
(Mac/Linux)/gradlew clean
(Windows)测试。
四、注意事项
镜像源可能存在同步延迟,若某镜像失效,可尝试切换其他镜像(如华为云、腾讯云镜像)。
部分特殊依赖(如 Google Play 服务相关)可能必须访问官方仓库,此时需配合合规代理使用。
配置后若出现依赖冲突,可删除项目的
android/.gradle
缓存目录后重试。
通过以上配置,大部分 flutter doctor
中的 Google API 访问问题均可解决。