Expo构建Android遇Gradle错误:':app:createBundleReleaseJsAndAssets'任务执行失败
解决Expo Android生产构建Gradle阶段失败问题
处理:app:createBundleReleaseJsAndAssets错误(node非零退出值)
- 本地预构建JS bundle排查代码问题:执行
npx 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,这步会直接揪出代码里的语法错误、未正确安装的第三方库、路径写错这类问题,比远程构建的模糊日志更直接。 - 对齐Node版本:本地Node版本和EAS构建环境的版本要一致,在
eas.json的build配置里加"env": {"node": "18.x"}(换成你本地用的稳定版本),版本不兼容很容易导致打包时Node进程崩溃。 - 彻底清理缓存:先跑
npx expo r -c清Expo缓存,然后删掉node_modules和package-lock.json,重新npm install,很多依赖缓存问题这么处理就能解决。
处理java.lang.StackOverflowError错误
- 扩容Gradle堆内存:打开
android/gradle.properties,把org.gradle.jvmargs改成org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8,默认堆内存不够用的时候,打包大项目就容易栈溢出。 - 简化构建配置:暂时关掉非必要的Gradle插件,比如代码混淆、多渠道打包这类配置,先跑一次基础构建,能成的话再逐个恢复配置找问题。
- 检查依赖冲突:执行
./gradlew androidDependencies(Windows用gradlew.bat androidDependencies)查看所有依赖的版本,有没有重复依赖或者版本差异极大的包,这类冲突很可能触发栈溢出。
额外排查技巧
- 检查配置文件:
app.json/app.config.js里的Android配置要格式正确,包名、签名配置别写错,Expo配置出错也会间接搞崩Gradle构建。 - 本地跑EAS构建:用
eas build -p android --local在本地执行构建,能看到完整的错误日志,远程构建的日志经常会截断关键信息,本地跑更容易定位问题。
内容的提问来源于stack exchange,提问作者yassine_oujaa
相关产品推荐
相关产品推荐

