如何在Expo EAS本地构建时避免下载gradle.zip?
解决EAS本地构建Gradle下载超时问题的预下载方案
方案一:复用Gradle全局缓存目录
Gradle默认会把下载的安装包存在用户全局缓存里,直接把预下载的包放到对应路径即可:
- 先找到Gradle缓存路径:
- Linux/macOS:
~/.gradle/wrapper/dists/gradle-7.3.3-all/<随机哈希子目录> - Windows:
C:\Users\<你的用户名>\.gradle\wrapper\dists\gradle-7.3.3-all\<随机哈希子目录>
(如果之前跑过构建,这个目录已经存在,里面可能有未完成的.part文件或.lock文件,先删掉)
- Linux/macOS:
- 用
wget下载好gradle-7.3.3-all.zip - 把下载好的zip文件放到这个哈希子目录里
- 同时在该目录下创建一个空文件,命名为
gradle-7.3.3-all.zip.ok——这是Gradle用来标记安装包已完整下载的校验文件
方案二:项目内指定本地Gradle包
直接修改项目的Gradle配置,让构建时读取本地预下载的zip:
- 打开项目根目录下的
android/gradle/wrapper/gradle-wrapper.properties文件 - 修改
distributionUrl字段,替换成本地文件路径:- Linux/macOS示例:
distributionUrl=file:///home/yourname/gradle-7.3.3-all.zip - Windows示例:
distributionUrl=file:///C:/Users/yourname/gradle-7.3.3-all.zip
(Windows路径要用正斜杠,或者把反斜杠改成双反斜杠)
- Linux/macOS示例:
- 保存文件后重新执行构建命令,就会直接用本地的zip文件
方案三:提前安装Gradle并配置环境变量
如果不想用zip包,直接解压后配置全局环境变量:
- 把预下载的
gradle-7.3.3-all.zip解压到固定目录,比如/opt/gradle/gradle-7.3.3(Linux/macOS)或C:\gradle\gradle-7.3.3(Windows) - 设置
GRADLE_HOME环境变量,指向这个解压后的目录 - 把
$GRADLE_HOME/bin(Linux/macOS)或%GRADLE_HOME%\bin(Windows)添加到系统PATH里 - 执行
gradle -v验证是否配置成功 - 再跑EAS构建命令,此时会直接调用已安装的Gradle,不会再触发下载
内容的提问来源于stack exchange,提问作者Pedro A
相关产品推荐
相关产品推荐

