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

首次使用Expo运行Android模拟器遇react-native-reanimated编译失败求助

解决Expo运行Android模拟器时react-native-reanimated的构建失败问题

错误原因

你遇到的构建失败是由于JDK 21与react-native-reanimated 3.6.2、Gradle 8.3存在兼容性冲突,具体表现为JDK21的jlink工具无法正确处理Android系统模块jar包,导致react-native-reanimated:compileDebugJavaWithJavac任务执行失败。

解决方案

1. 降级JDK到17版本

Android官方推荐使用JDK 17进行构建,JDK21尚未被广泛适配:

  • 卸载当前安装的JDK 21
  • 安装JDK 17(可选择Oracle JDK或OpenJDK)
  • 配置终端环境变量,确保使用JDK17:
    • 执行java -version确认当前版本
    • Mac用户修改~/.zshrc或~/.bash_profile,添加:
      export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
      export PATH=$JAVA_HOME/bin:$PATH
      
    • 执行source ~/.zshrc(对应你的终端配置文件)使配置生效

2. 清理缓存与构建文件

移除旧的构建缓存,避免残留问题:

  • 删除项目内的Android构建目录:
    rm -rf android/build android/app/build
    
  • 删除全局Gradle缓存:
    rm -rf ~/.gradle/caches
    
  • 重新执行构建命令:
    npx expo run:android
    

3. 验证react-native-reanimated配置

确保Babel插件配置正确,这是reanimated正常工作的必要条件:

  • 打开项目根目录的babel.config.js,确认reanimated插件放在最后:
    module.exports = function(api) {
      api.cache(true);
      return {
        presets: ['babel-preset-expo'],
        plugins: ['react-native-reanimated/plugin'],
      };
    };
    

4. 检查Android SDK配置

确保SDK版本与项目配置匹配:

  • 打开Android Studio的SDK Manager,确认已安装android-34版本的SDK Platform和对应Build Tools
  • 检查项目android/build.gradle中的targetSdkVersion是否为34

内容的提问来源于stack exchange,提问作者Adam Sucharda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 02:20:22