React Native 打包时 Hermes AAR 下载慢的问题

Gary Chen
 React Native 打包时 Hermes AAR 下载慢的问题

解决 React Native 打包时 Hermes AAR 下载慢的问题

当你在 React Native 打包过程中遇到 hermes-android-0.72.17-release.aar 下载缓慢的问题(显示 EXECUTING [2m 51s]),这通常是由于网络或 Gradle 配置问题导致的。以下是详细的解决方案:

主要原因

  1. 首次构建时需要从远程仓库下载 Hermes 引擎
  2. 默认的 Maven 仓库连接速度慢
  3. 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 文件

  1. 从官方仓库手动下载:Hermes AAR
  2. 放入本地缓存目录:
    • 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\

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

预防措施

  1. 将下载好的 AAR 文件备份,避免重复下载
  2. 在团队内部搭建私有 Maven 仓库缓存常用依赖
  3. 考虑将 Hermes 引擎作为项目直接依赖而非动态下载

验证是否生效

构建完成后检查:

  1. android/.gradle 目录下应有缓存文件
  2. 后续构建时间应显著缩短

如果问题仍然存在,可能需要检查公司网络是否对 Maven 仓库有限制,或尝试在不同网络环境下构建。