You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 10:45:44