使用EAS构建React Native应用时遇:app:mergeReleaseResources错误求助
React Native EAS Build 资源编译失败(含StackOverflowError)解决方案
错误现象
- 执行
:app:mergeReleaseResources任务失败 mipmap-mdpi目录下的ic_launcher_round.png、ic_launcher.png、ic_launcher_foreground.png均出现AAPT编译失败错误- 伴随
java.lang.StackOverflowError异常
解决步骤
1. 验证图标文件完整性
- 检查本地对应目录下的PNG文件是否损坏:直接打开查看能否正常显示,用图片工具重新导出为标准PNG格式(避免特殊编码或损坏)
- 核对图标尺寸是否符合mdpi规范:
ic_launcher/ic_launcher_round应为48×48px,前景图尺寸需匹配对应规格 - 确认文件无重名、权限异常,
android/app/src/main/res/mipmap-mdpi/目录下文件完整
2. 清理构建缓存
执行以下命令清理本地及Expo构建缓存:
# 清理Expo远程构建缓存 eas build:clear-cache # 清理Android本地构建缓存 cd android && ./gradlew clean && cd ..
提交代码前删除本地.expo、android/build、android/app/build目录,重新触发构建
3. 修复StackOverflowError
- 调整Gradle堆内存:修改
android/gradle.properties文件,增大JVM堆配置:org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 - 升级Gradle版本:将
android/build.gradle中的Gradle插件版本升级到稳定兼容版(如7.4.2),同步升级Gradle wrapper版本
4. 排查资源冲突
- 检查依赖库是否引入同名mipmap资源,导致合并冲突
- 确认修复
react-native-navbar-color后,AndroidManifest.xml中的图标引用路径是否正确
内容的提问来源于stack exchange,提问作者Farhaan Mahbub
相关产品推荐
相关产品推荐

