Expo SDK 47执行eas build --platform android报:app:mergeReleaseResources错误,如何解决?
解决Expo SDK 47构建Android时
:app:mergeReleaseResources错误的方法 :app:mergeReleaseResources错误通常和资源文件损坏、路径错误、缓存冲突或资源命名不规范有关,以下是针对性的解决步骤:
1. 验证资源文件的有效性与路径
- 确认
app.json中配置的所有资源文件真实存在:检查./assets/images/icon.png、./assets/images/splash.png、./assets/images/adaptive-icon.png这些文件是否在对应路径下,没有被误删或移动 - 检查资源文件格式:确保所有图片是Android支持的格式(如无损坏的PNG),且自适应图标、启动图的尺寸符合Expo要求(比如自适应图标前景图建议为1024x1024px)
- 规范资源文件名:Android不允许资源文件名包含大写字母、空格或特殊字符,将所有资源文件名改为小写+下划线格式(如
AdaptiveIcon.png改为adaptive_icon.png),并同步更新app.json中的对应路径
2. 清理构建缓存
- 清理本地预构建缓存:执行
npx expo prebuild --clean - 清除EAS远程构建缓存:执行
eas build --platform android --clear-cache - 手动删除本地Android构建目录:删除项目根目录下的
android/build和android/app/build文件夹,再重新发起构建
3. 避免资源重复或冲突
- 缩小
assetBundlePatterns范围:当前配置的["**/*"]会打包项目中所有文件,容易引入无关资源导致冲突,建议修改为更具体的路径,比如:"assetBundlePatterns": ["./assets/images/*", "./assets/fonts/*"] - 检查第三方库资源冲突:如果项目引入了第三方依赖,确认是否存在与本地资源同名的文件,若有则修改本地资源名称或调整依赖版本
4. 修复依赖与Expo配置
- 修复依赖版本不兼容问题:执行
自动调整依赖版本以匹配Expo SDK 47的要求npx expo install --fix - 检查权限配置:确认
app.json中Android权限写法正确,当前的["CAMERA","CAMERA_ROLL"]符合Expo规范,无需修改,但若存在其他无效权限需删除
内容的提问来源于stack exchange,提问作者Akibul Islam
相关产品推荐
相关产品推荐

