执行gradlew assembleRelease时Windows崩溃的排查求助
Windows下React Native打包
assembleRelease崩溃的排查步骤 针对执行gradlew assembleRelease时在app:bundleReleaseJsAndAssets步骤崩溃、进入无限循环的问题,可按以下步骤排查:
单独测试JS打包步骤,分离问题范围
直接执行JS打包命令,确认是否是JS打包环节引发的问题: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/如果此命令也崩溃或循环,说明问题出在Metro打包阶段,而非Gradle后续流程。
调整JVM内存配置,缓解内存压力
从内存释放提示来看,系统内存不足可能是诱因。修改项目android/gradle.properties中的JVM参数,增大堆内存:org.gradle.jvmargs=-Xmx6144m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8同时关闭系统中其他高内存占用程序,避免资源竞争。
清理全链路缓存,排除缓存污染
执行以下命令清理各类缓存后重新尝试打包:# 清理Gradle缓存 cd android && gradlew clean # 清理React Native缓存 npx react-native clean # 重置npm依赖 rm -rf node_modules && npm install # 删除本地构建产物 rm -rf android/app/build android/build核对Node.js版本兼容性
React Native 0.68.2要求Node.js版本为14.x或16.x,执行node -v确认当前版本是否符合。若版本不匹配,使用nvm/nvs切换到兼容版本后重试。排查依赖兼容性与冗余库
- 你的依赖中包含浏览器端库
i18next-browser-languagedetector,React Native项目应替换为react-native-localize配合i18next,该库可能在打包时引发异常。 - 尝试临时移除非核心依赖(如
react-native-youtube-iframe、react-native-image-modal),逐步排查是否存在依赖冲突或兼容性问题。
- 你的依赖中包含浏览器端库
获取详细日志,定位循环触发点
执行打包命令时添加日志参数,查看重复输出的具体内容:gradlew assembleRelease --info根据日志中重复的错误信息或执行步骤,定位是资源处理、依赖钩子还是配置逻辑导致的循环。
检查Metro配置是否异常
查看项目根目录metro.config.js,若有自定义的resolver或transformer配置,暂时恢复为默认配置后测试,排除自定义配置引发的打包循环。
内容的提问来源于stack exchange,提问作者richard bruner
相关产品推荐
相关产品推荐

