react-native-reanimated安装后cmake外部原生构建错误修复方法
问题根因
触发该CMake构建错误的核心原因是依赖版本不匹配:react-native-reanimated@2.8.0 最低要求React Native版本 >= 0.66.0,和当前项目使用的react-native@0.63.0完全不兼容,原生构建阶段无法匹配对应CMake编译规则直接报错。
修复方案
根据项目需求二选一即可:
方案1:保留RN0.63版本,降级reanimated到兼容版本
这是成本最低的修复方式,不需要改动现有项目其他配置:
- 卸载当前不兼容的reanimated版本
# npm用户执行 npm uninstall react-native-reanimated # yarn用户执行 yarn remove react-native-reanimated
- 安装适配RN0.63的稳定版reanimated
# npm用户执行 npm install react-native-reanimated@1.13.4 --save # yarn用户执行 yarn add react-native-reanimated@1.13.4
- 清理Android构建缓存
cd android ./gradlew clean cd ..
- 重新执行
react-native run-android启动项目即可。
方案2:保留reanimated@2.8.0,升级项目RN版本
如果需要使用reanimated 2.x的特性,需要把项目React Native版本升级到0.66.0及以上,同时同步升级对应匹配的react版本,升级完成后还要完成以下配置:
- 打开
babel.config.js,在plugins数组最后添加reanimated插件配置,注意该插件必须放在plugins数组的最后位置,否则会出现编译或运行异常:
module.exports = { presets: ['module:metro-react-native-babel-preset'], plugins: [ // 其他已有插件 'react-native-reanimated/plugin' ], };
- 打开
android/build.gradle,指定和RN版本匹配的NDK版本为21.4.7075529,避免CMake构建时找不到对应编译工具链。 - 依次执行清理缓存命令,重新构建项目:
cd android ./gradlew clean cd .. npx react-native start --reset-cache
补充:如果降级/升级版本后仍然报CMake相关错误,检查本地Android SDK是否安装了对应版本的CMake和NDK组件,可在Android Studio的SDK Manager中勾选安装3.10.2版本CMake、对应版本NDK后重试。
内容的提问来源于stack exchange,提问作者Sagar Kachhadiya
相关产品推荐
相关产品推荐

