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

CircleCI中react-native-reanimated的buildCMakeRelWithDebInfo任务超时排查

解决CircleCI上React Native Reanimated构建卡住的问题

针对你遇到的Android构建卡在react-native-reanimated:buildCMakeRelWithDebInfo[arm64-v8a][reanimated,worklets]的问题,试试以下几个实用方案:

1. 提升CircleCI构建资源

Reanimated的CMake编译对CPU和内存要求较高,CircleCI默认资源可能不足以支撑。在你的.circleci/config.yml里给Android构建job配置更大的资源类:

jobs:
  build-android:
    machine:
      image: cimg/android:2025.03-node
      resource_class: large  # 或xlarge,根据实际情况选择
    steps:
      # 你的现有构建步骤

2. 强制多线程编译并调整优化级别

修改Reanimated的CMake编译参数,开启多线程并降低优化等级来加快构建速度:
在android/app/build.gradle中添加以下配置:

project.ext.reanimated = [
  cmakeFlags: "-DCMAKE_BUILD_PARALLEL_LEVEL=4 -DCMAKE_CXX_FLAGS=-O2"
]

CMAKE_BUILD_PARALLEL_LEVEL设置为对应资源类的CPU核心数,large资源一般是4核,所以设为4即可。

3. 清理缓存避免损坏 artifacts

CircleCI的缓存可能残留了损坏的编译文件,导致构建卡住。在构建步骤中加入缓存清理:

steps:
  - run:
      name: Clean Gradle and build artifacts
      command: |
        ./gradlew clean
        rm -rf ~/.gradle/caches/modules-2/files-2.1/com.facebook.react/react-native/
        rm -rf android/app/build/intermediates

或者在fastlane lane里先执行clean任务:

lane :build_android do
  gradle(task: "clean", project_dir: "android")
  gradle(task: "assembleRelease", project_dir: "android")
end

4. 调整Reanimated版本兼容性

当前使用的3.17.1可能和RN 0.78.1存在兼容性问题,试试降级到经过验证的兼容版本,比如3.15.0:

"react-native-reanimated": "^3.15.0"

调整后记得重新安装依赖并清理缓存。

5. 确认Ninja路径配置

虽然已经安装Ninja,但要确保CMake能正确找到它。在CircleCI步骤中添加验证和路径配置:

- run:
    name: Verify Ninja setup
    command: |
      ninja --version
      # 如果Ninja不在默认PATH,添加路径
      if ! command -v ninja &> /dev/null; then
        export PATH="$PATH:/usr/local/bin"
      fi

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 12:55:08