React Native构建Release包失败:mergeReleaseResources任务报错重复资源
解决React Native Android Release构建重复资源错误
问题现象
执行构建命令:
npx react-native run-android --variant=release
时,任务:app:mergeReleaseResources失败,报错如下:
[drawable-mdpi-v4/src_images_goback] /Users/office/Documents/nsc-app/android/app/src/main/res/drawable-mdpi/src_images_goback.png [drawable-mdpi-v4/src_images_goback] /Users/office/Documents/nsc-app/android/app/build/generated/res/react/release/drawable-mdpi/src_images_goback.png: Error: Duplicate resources [drawable-mdpi-v4/assets_nsclogo] /Users/office/Documents/nsc-app/android/app/src/main/res/drawable-mdpi/assets_nsclogo.png [drawable-mdpi-v4/assets_nsclogo] /Users/office/Documents/nsc-app/android/app/build/generated/res/react/release/drawable-mdpi/assets_nsclogo.png: Error: Duplicate resources
原因
src/main/res/drawable-mdpi下手动添加的图片,与React Native打包时自动生成到build/generated/res/react/release/drawable-mdpi的同名图片冲突,导致资源合并失败。
解决方法
方法一:删除原生目录中的重复图片
- 定位到报错的两张图片:
/Users/office/Documents/nsc-app/android/app/src/main/res/drawable-mdpi/src_images_goback.png/Users/office/Documents/nsc-app/android/app/src/main/res/drawable-mdpi/assets_nsclogo.png
- 删除这两张图片(保留JS项目中引用的原图片,通常在
assets或src/images等目录下) - 重新执行构建命令。
方法二:修改Gradle配置排除冲突资源
编辑android/app/build.gradle文件,在android代码块中添加资源排除规则:
android { // 保留原有其他配置 sourceSets { main { // 排除指定的重复资源文件 res.exclude 'drawable-mdpi/src_images_goback.png' res.exclude 'drawable-mdpi/assets_nsclogo.png' } } }
之后执行清理并重构:
cd android && ./gradlew clean && cd .. && npx react-native run-android --variant=release
方法三:清理构建缓存
执行以下命令彻底清理缓存,消除缓存导致的重复资源问题:
rm -rf android/app/build rm -rf node_modules && npm install npx react-native start --reset-cache
完成后重新运行构建命令。
内容的提问来源于stack exchange,提问作者Build Though
相关产品推荐
相关产品推荐

