You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter项目Gradle未复用本地缓存重复下载依赖问题咨询

解决方案

重复拉取依赖的核心原因是仅配置了单个项目的参数,未设置全局级别的缓存规则,按以下步骤调整即可:

1. 配置Gradle全局缓存规则

当前仅修改单项目下的[project_directory]/android/gradle/wrapper/gradle-wrapper.properties时,新建项目会自动生成默认的远程拉取配置,无法复用本地包:

  • 编辑/创建用户目录下的全局Gradle配置文件~/.gradle/gradle.properties,添加固定的本地分发地址:
distributionUrl=file:///run/media/me/gradle-7.2-all.zip
  • 执行命令修复Gradle缓存目录权限,避免权限不足导致缓存写入失败、每次触发重新下载:
chmod -R 755 ~/.gradle

2. 配置Flutter Pub全局缓存

修改pubspec.yaml后重复拉取依赖,是Pub缓存路径未正确配置导致的:

  • 打开当前使用的Shell配置文件(Bash对应~/.bashrc、Zsh对应~/.zshrc),添加Pub全局缓存路径配置:
export PUB_CACHE=~/.pub-cache
export PATH="$PUB_CACHE/bin:$PATH"
  • 执行source ~/.bashrc(替换为实际修改的配置文件路径)让环境变量立即生效。后续执行flutter pub get时会优先读取PUB_CACHE目录下的已缓存依赖,不会重复发起网络请求。

3. 配置Flutter新项目默认模板

如果需要新建Flutter项目时默认使用本地Gradle配置,无需每次手动修改,可以直接调整Flutter SDK内置的项目模板:

  • 找到Flutter SDK安装目录下的模板文件:packages/flutter_tools/templates/app/android.tmpl/gradle/wrapper/gradle-wrapper.properties.tmpl
  • 将文件内的distributionUrl字段值替换为本地Gradle包路径file:///run/media/me/gradle-7.2-all.zip,后续新建项目会自动套用该配置。

验证配置

配置完成后,在项目目录下执行flutter clean清理旧的构建缓存,再执行flutter run即可正常复用本地缓存,不会重复拉取已下载的依赖。
注:当前使用的Flutter 3.1.0版本默认匹配Gradle 7.2,版本兼容无问题,配置前可执行flutter doctor -v确认所有环境路径识别正常。

内容的提问来源于stack exchange,提问作者Conde

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 10:57:18