React Native运行报错:路径下存在重复libfbjni.so文件
解决React Native中
:app:mergeDebugNativeLibs报错(重复libfbjni.so) 问题现象
无代码改动的情况下,运行React Native Android应用时触发mergeDebugNativeLibs任务失败:
- Windows端提示
lib/arm64-v8a/libfbjni.so存在两个重复文件 - Mac端提示
lib/armeabi-v7a/libfbjni.so重复
已尝试gradle clean、删除.gradle和build文件夹,问题未解决。
解决方案
方案1:添加打包规则优先选择第一个文件
在app/build.gradle的android块中配置打包规则,让Gradle遇到重复so文件时保留第一个:
android { // 保留原有配置 packagingOptions { pickFirst 'lib/**/libfbjni.so' } }
方案2:强制统一fbjni依赖版本
冲突源于不同依赖包引入了不同版本的fbjni,可在项目根目录配置文件中强制统一版本:
- 旧版Gradle配置(根目录build.gradle):
allprojects { configurations.all { resolutionStrategy { // 版本号匹配报错中RN依赖的版本,示例为0.3.0 force 'com.facebook.fbjni:fbjni:0.3.0' } } }
- 新版RN配置(根目录settings.gradle):
dependencyResolutionManagement { resolutions { force 'com.facebook.fbjni:fbjni:0.3.0' } }
方案3:彻底清除缓存
执行更彻底的缓存重置操作:
- 清除Gradle构建缓存:
./gradlew cleanBuildCache - 重置node_modules:
# Mac/Linux rm -rf node_modules && npm install # Windows rmdir /s/q node_modules && npm install - 清除npm缓存:
npm cache clean --force
验证
完成操作后,重新运行npx react-native run-android,确认任务执行成功。
内容的提问来源于stack exchange,提问作者Faizal Shap
相关产品推荐
相关产品推荐

