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

react-native-reanimated:compileDebugJavaWithJavac任务执行失败

尽管已有其他开发者提出过同类问题,但现有公开的解决方案均无法适配我的实际使用场景。

环境信息
System:
    OS: macOS 12.3.1
    CPU: (10) arm64 Apple M1 Pro
    Memory: 202.25 MB / 32.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 16.1.0 - ~/.nvm/versions/node/v16.1.0/bin/node
    Yarn: 1.22.19 - ~/.yarn/bin/yarn
    npm: 7.11.2 - ~/.nvm/versions/node/v16.1.0/bin/npm
    Watchman: 2022.03.21.00 - /opt/homebrew/bin/watchman
  Managers:
    CocoaPods: 1.11.3 - /opt/homebrew/bin/pod
  SDKs:
    iOS SDK:
      Platforms: DriverKit 21.4, iOS 15.5, macOS 12.3, tvOS 15.4, watchOS 8.5
    Android SDK: Not Found
  IDEs:
    Android Studio: 2021.2 AI-212.5712.43.2112.8609683
    Xcode: 13.4.1/13F100 - /usr/bin/xcodebuild
  Languages:
    Java: 11.0.15 - /Users/AH94896/.jenv/shims/javac (使用Java 1.8版本测试得到相同结果)
  npmPackages:
    @react-native-community/cli: Not Found
    react: 16.14.0 => 16.14.0
    react-native: 0.64.1 => 0.64.1
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

------------------------------------------------------------
Gradle 6.5.1
------------------------------------------------------------

Build time:   2020-06-30 06:32:47 UTC
Revision:     66bc713f7169626a7f0134bf452abde51550ea0a

Kotlin:       1.3.72
Groovy:       2.5.11
Ant:          Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM:          11.0.15 (Eclipse Adoptium 11.0.15+10)
OS:           Mac OS X 12.3.1 x86_64
问题描述

我可以通过执行./gradlew clean命令正常完成项目清理操作,但执行npx react-native run-android启动安卓应用时,构建总会在同一节点失败:

> Configure project :react-native-reanimated
No AAR for react-native-reanimated found. Attempting to build from source.
Native libs debug enabled: false
Android gradle plugin: 4.1.0
Gradle: 6.5.1
building Reanimated2

> Task :react-native-reanimated:compileDebugJavaWithJavac FAILED

构建流程出现异常的具体位置对应以下报错输出:

/Users/AH94896/projects/app/node_modules/react-native-reanimated/android/src/main/java/com/swmansion/reanimated/layoutReanimation/ReanimatedUIImplementation.java:13: error: cannot find symbol
      ViewManagerResolver viewManagerResolver,
      ^
  symbol:   class ViewManagerResolver
  location: class ReanimatedUIImplementation
/Users/AH94896/projects/app/node_modules/react-native-reanimated/android/src/main/java/com/swmansion/reanimated/layoutReanimation/ReanimatedUIImplementation.java:11: error: recursive constructor invocation
  public ReanimatedUIImplementation(
         ^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
2 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':react-native-reanimated:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

该问题十分反常:我团队内其他成员无论使用Apple M1系列芯片Mac还是Intel芯片Mac,均未遇到同类问题。我已经尝试了所有能检索到的相关解决方案均无效,如果需要更多定位信息可随时告知,该问题目前是我项目推进的严重阻塞点。


解决方案

报错核心原因是react-native-reanimated版本与当前React Native 0.64.1版本不兼容:2.3.0及以上版本的reanimated调用了React Native 0.65+才调整过签名的ViewManagerResolver接口,和当前使用的RN版本不匹配;同时M1芯片下Gradle默认以Rosetta x86模式运行的缓存异常、本地Android SDK路径未正确配置也会触发该问题。

按以下顺序操作即可修复:

  • 安装适配RN 0.64.1的reanimated版本:
    # 使用yarn执行
    yarn add react-native-reanimated@2.2.4
    # 使用npm执行
    npm install react-native-reanimated@2.2.4 --save
    
  • 全量清除构建与依赖缓存:
    # 清除watchman监听缓存
    watchman watch-del-all
    # 清除现有依赖与锁文件
    rm -rf node_modules yarn.lock package-lock.json
    # 重新安装依赖
    yarn install
    # 进入android目录清除gradle构建缓存
    cd android && ./gradlew clean && cd ..
    # 清除metro打包缓存
    rm -rf /tmp/metro-*
    
  • M1芯片环境专项配置:
    • 打开Android Studio,进入SDK Manager安装对应版本的Android SDK(当前环境提示Android SDK: Not Found,必须先完成该步骤,同时在~/.zshrc中配置好ANDROID_HOME环境变量)
    • 访达中找到Android Studio应用,右键选择「显示简介」,勾选「使用Rosetta打开」,重启Android Studio后等待Gradle同步完成
    • 在项目android/gradle.properties文件末尾追加配置,指定Gradle使用Android Studio自带的arm64架构JDK:
      org.gradle.java.home=/Applications/Android Studio.app/Contents/jre/Contents/Home
      
  • 重新执行构建命令:
    npx react-native run-android
    

如果执行后仍报错,排查是否有第三方依赖强制拉高了reanimated版本:

  • 执行yarn why react-native-reanimated查看依赖树中所有引用reanimated的包,若存在第三方包依赖高版本reanimated,在package.json中添加resolutions字段强制锁定版本:
    "resolutions": {
      "react-native-reanimated": "2.2.4"
    }
    
  • 保存后重新执行缓存清理与依赖安装步骤即可。

内容的提问来源于stack exchange,提问作者Mike S.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 15:15:48