React Native执行run-android时从distributionUrl下载Gradle超时报错
问题表现
- React Native开发环境配置完成后,执行
npx react-native run-android命令启动安卓端应用,流程可正常推进至模拟器启动阶段 - 构建环节读取
distributionUrl配置下载Gradle 7.3-all安装包时触发超时,流程中断,抛出错误如下:
Exception in thread "main" java.io.IOException: Downloading from https://services.gradle.org/distributions/gradle-7.3-all.zip failed: timeout
可行解决方案
方案1:手动放置本地Gradle包(稳定性最高)
- 提前将对应版本的
gradle-7.3-all.zip压缩包下载到本地,下载完成后不要解压,保留原zip格式 - 打开本地Gradle缓存目录:
- Windows系统路径:
C:\Users\当前系统用户名\.gradle\wrapper\dists\gradle-7.3-all - macOS/Linux系统路径:
~/.gradle/wrapper/dists/gradle-7.3-all
- Windows系统路径:
- 进入上述目录下的随机字符串命名子文件夹,将下载好的zip压缩包直接粘贴到该目录内,无需修改其他配置
- 重新执行
npx react-native run-android命令,构建程序会自动识别本地已存在的安装包,跳过下载环节直接进入解压、构建流程
方案2:替换Gradle分发源
- 打开项目路径下的
android/gradle/wrapper/gradle-wrapper.properties文件 - 找到
distributionUrl配置项,将原官方下载地址替换为可正常访问的同版本Gradle分发源地址,注意必须保留原配置要求的7.3版本号,随意修改版本会引发构建兼容性问题 - 保存文件后重新执行构建命令即可
方案3:延长下载超时阈值
如果是网络波动导致的偶发超时,可以通过调整配置拉长下载等待时长:
- 打开项目路径下的
android/gradle.properties文件 - 在文件末尾新增以下配置:
systemProp.org.gradle.internal.http.connectionTimeout=120000 systemProp.org.gradle.internal.http.socketTimeout=120000 org.gradle.daemon.idletimeout=100000
- 保存配置后重新触发构建,下载环节的等待时长会从默认的10秒延长至2分钟,降低偶发网络波动导致的超时概率
内容的提问来源于stack exchange,提问作者Onyebuchi Kingsley Omerenma
相关产品推荐
相关产品推荐

