React Native Android Release构建出现重复资源错误求助
解决React Native Release构建中资源重复冲突问题
问题分析
你遇到的是reactnavigation_elements的backicon资源在android/app/src/main/res和android/app/build/generated/res/react/release目录重复,导致:app:mergeReleaseResources任务失败。删除源码目录资源会引发编译错误,且混淆配置不影响资源合并环节,核心是资源优先级或重复资源的处理逻辑问题。
可行解决方法
1. 调整资源目录优先级
在app/build.gradle的android块中修改资源目录顺序,让Gradle优先加载构建生成目录的资源,自动忽略源码目录的同名重复资源:
android { // 保留原有配置... sourceSets { main { res.srcDirs = [ "$buildDir/generated/res/react/release", "src/main/res" ] } } }
2. 精准排除冲突资源
如果不想调整整体资源优先级,可直接排除源码目录中的冲突backicon资源,在app/build.gradle的android块中添加:
android { // 保留原有配置... packagingOptions { // 根据实际资源后缀调整,比如drawable、drawable-hdpi等 exclude 'drawable/reactnavigation_elements_backicon.xml' exclude 'drawable-hdpi/reactnavigation_elements_backicon.png' // 其他分辨率目录的资源按需添加 } }
3. 适配react-navigation依赖版本
部分版本的@react-navigation/elements与RN 0.71.11存在兼容性问题,会重复生成资源。可锁定适配的稳定版本,修改package.json后重新安装依赖:
"@react-navigation/native": "^6.1.6", "@react-navigation/elements": "^1.3.17"
执行npm install或yarn install后清理构建缓存再重新打包。
验证操作
- 先执行
./gradlew clean清理构建缓存 - 运行自定义build-release脚本重新构建
内容的提问来源于stack exchange,提问作者Endrit Shabani
相关产品推荐
相关产品推荐

