Task :app:mergeReleaseResources 失败,删除重复资源后修改未打包生效问题
根因说明
修改不生效的核心原因是删除drawable资源后,未重新执行bundle命令生成包含最新代码的bundle文件及对应资源,后续执行release构建时直接复用了旧的缓存产物。
此前的重复资源报错,本质是手动提前执行bundle生成了静态资源,gradle构建release包时默认会再次自动生成一份资源,两份资源冲突导致构建失败。
解决步骤
- 第一步 清理所有旧构建产物与缓存
依次执行以下命令:rm -rf android/app/build rm -rf android/app/src/main/assets/* cd android && ./gradlew clean cd .. && npx react-native start --reset-cache - 第二步 重新生成最新的bundle与资源文件
执行bundle命令生成包含最新修改的产物:react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res - 第三步 执行release构建
直接运行构建命令即可生效:react-native run-android --variant=release
长期优化方案
如果要避免后续再出现同类问题,可修改android/app/build.gradle配置,让gradle构建时自动执行bundle任务,无需手动提前执行,也不会出现资源重复冲突:
找到project.ext.react配置块,调整为以下内容(按需保留你原有的其他配置,补充缺失的字段即可):
project.ext.react = [
enableHermes: false, // 按你项目实际需求配置是否开启hermes
entryFile: "index.js",
bundleAssetName: "index.android.bundle",
bundleInRelease: true,
resourcesDirRelease: "src/main/res"
]
配置完成后,后续不需要提前手动执行bundle命令,直接执行react-native run-android --variant=release即可自动打包最新代码与资源。
内容的提问来源于stack exchange,提问作者Marvelous Ikechi
相关产品推荐
相关产品推荐

