React Native 0.68.2 Android打包assembleRelease时出现重复资源错误
解决React Native 0.68.2打包AAB时mergeReleaseResources资源重复错误
这个错误是因为React Native打包过程中,build/generated/res/react/release会自动生成JS侧引用的资源副本,和src/main/res下的同名资源冲突导致的,以下是几种可行的解决办法:
先清理缓存重试
执行gradle清理命令清空build目录的生成文件,再重新打包:./gradlew clean ./gradlew assembleRelease清理后重新打包会重新生成资源映射,大概率能解决重复问题。
删除res目录下的冗余资源
检查src/main/res里的重复文件(backicon.png、amaro1.jpeg、applogo.png等),如果这些资源已经在JS代码里通过require()或者import引用了,那res目录下的这些文件完全是多余的,直接删除即可。React Native会自动把JS引用的资源打包到生成目录,不需要手动放在res文件夹里。配置gradle排除重复资源
如果不想删除res目录下的文件,可以在android/app/build.gradle的android块里添加打包规则,排除生成目录里的重复项:android { // 其他原有配置... packagingOptions { exclude 'drawable/backicon.png' exclude 'drawable/amaro1.jpeg' exclude 'mipmap/applogo.png' // 根据资源实际所在的子目录调整路径 } }规范资源引用方式
确保JS侧引用本地资源的方式正确,比如:const backIcon = require('./assets/backicon.png'); // 或者ES6 import import backIcon from './assets/backicon.png';不要手动把这些资源复制到
src/main/res目录,避免重复生成。
内容的提问来源于stack exchange,提问作者gabogabans
相关产品推荐
相关产品推荐

