安装react-native-reanimated 2后安卓构建报libreactnativejni.so冲突如何解决
报错原因
该错误是react-native-reanimated包内置的Hermes相关原生so库,和项目使用的React Native官方包自带的同路径so库libreactnativejni.so冲突,打包阶段无法自动选择保留版本导致构建失败。
解决方案
- 方案1:添加打包优先级规则(生效最快)
打开项目路径下的android/app/build.gradle文件,找到android配置块,新增packagingOptions配置项,指定所有架构下的该so库优先使用第一份扫描到的版本即可:
android { // 此处保留你原有项目的其他配置不变 packagingOptions { pickFirst 'lib/x86/libreactnativejni.so' pickFirst 'lib/x86_64/libreactnativejni.so' pickFirst 'lib/armeabi-v7a/libreactnativejni.so' pickFirst 'lib/arm64-v8a/libreactnativejni.so' } }
添加完成后重新执行安卓构建即可。
- 方案2:版本适配+全量缓存清理(针对方案1不生效的场景)
按顺序执行以下操作:
- 版本适配:你当前使用的React Native版本为0.65.1,建议安装适配该版本的
react-native-reanimated2.x版本,范围为2.2.0~2.3.0,避免版本不匹配导致的适配问题 - Hermes配置校验:如果你的项目开启了Hermes引擎,需要在
android/gradle.properties文件中新增配置REANIMATED_ENABLE_HERMES=true - 全量清理缓存:
- 删除项目根目录的
node_modules文件夹、package-lock.json或yarn.lock文件,重新执行npm install或yarn安装依赖 - 进入项目
android目录,执行gradlew clean(Windows)或./gradlew clean(Mac/Linux)清理安卓构建缓存 - 回到项目根目录,执行
npx react-native start --reset-cache启动打包服务,之后重新构建安卓项目即可
- 删除项目根目录的
内容的提问来源于stack exchange,提问作者7th storm
相关产品推荐
相关产品推荐

