解决 React Native 打包时 Hermes AAR 下载慢的问题
当你在 React Native 打包过程中遇到 hermes-android-0.72.17-release.aar
下载缓慢的问题(显示 EXECUTING [2m 51s]
),这通常是由于网络或 Gradle 配置问题导致的。以下是详细的解决方案:
主要原因
- 首次构建时需要从远程仓库下载 Hermes 引擎
- 默认的 Maven 仓库连接速度慢
- Gradle 没有正确使用缓存
解决方案
1. 使用国内镜像源(推荐)
修改项目中的 android/build.gradle
文件:
buildscript {
repositories {
// 添加阿里云镜像
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
google()
mavenCentral()
}
}
allprojects {
repositories {
// 添加阿里云镜像
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google' }
google()
mavenCentral()
}
}
2. 手动下载 AAR 文件
- 从官方仓库手动下载:Hermes AAR
- 放入本地缓存目录:
- macOS/Linux:
~/.gradle/caches/modules-2/files-2.1/com.facebook.react/hermes-engine/0.72.17/
- Windows:
%USERPROFILE%\.gradle\caches\modules-2\files-2.1\com.facebook.react\hermes-engine\0.72.17\
- macOS/Linux:
3. 使用离线模式(仅适用于已有缓存的情况)
./gradlew assembleRelease --offline
4. Gradle 配置优化
在 android/gradle.properties
中添加:
# 启用并行构建
org.gradle.parallel=true
# 启用构建缓存
org.gradle.caching=true
# 增加 Gradle 堆内存
org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m
5. 清理并重建
# 停止现有 Gradle 进程
./gradlew --stop
# 清理项目
./gradlew clean
# 重新构建
./gradlew assembleRelease
预防措施
- 将下载好的 AAR 文件备份,避免重复下载
- 在团队内部搭建私有 Maven 仓库缓存常用依赖
- 考虑将 Hermes 引擎作为项目直接依赖而非动态下载
验证是否生效
构建完成后检查:
- 在
android/.gradle
目录下应有缓存文件 - 后续构建时间应显著缩短
如果问题仍然存在,可能需要检查公司网络是否对 Maven 仓库有限制,或尝试在不同网络环境下构建。