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

React Native应用Release版本打包失败求助

React Native Release打包失败(调试正常)::app:bundleReleaseJsAndAssets任务报错exit value 1

问题概述

调试模式下React Native应用运行正常,但执行./gradlew assembleRelease打包Release版本时,:app:bundleReleaseJsAndAssets任务失败,返回Process 'command 'cmd'' finished with non-zero exit value 1,同时伴随Metro依赖解析相关的调用栈错误。

排查与解决方案

1. 获取完整错误日志

当前报错信息未显示具体的依赖解析失败原因,先执行以下命令获取详细日志:

# 带verbose参数执行打包
./gradlew assembleRelease --verbose

# 或单独执行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/ --verbose

通过完整日志定位具体是哪个模块、文件路径或依赖导致的问题。

2. 修复文件路径大小写问题

Windows系统调试时不区分文件路径大小写,但Metro打包Release时会严格校验。检查所有import语句的路径大小写是否与实际文件完全一致,例如避免import './MyComponent'对应实际文件mycomponent.js的情况。

3. 清理各类缓存

# 重置Metro缓存
npx react-native start --reset-cache

# 清理Gradle缓存
./gradlew clean

# 清理node_modules并重新安装依赖
rm -rf node_modules && npm install

4. 检查Release构建配置

  • ProGuard规则:若开启了代码混淆,确保android/app/proguard-rules.pro中添加了React Native必要的混淆规则:
    -keep class com.facebook.react.** { *; }
    -keep class org.webkit.** { *; }
    
  • Gradle内存配置:在android/gradle.properties中确保分配了足够的内存:
    org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
    

5. 排查第三方库兼容性

  • 暂时移除最近添加的第三方库,尝试重新打包,逐步定位是否是某款库导致的Release打包失败。
  • 确认第三方库是否需要额外的Release模式配置(如手动链接、Manifest权限添加等)。

6. 验证Node版本兼容性

确保使用的Node版本符合当前React Native版本的官方要求(例如RN 0.70+建议Node 16.x),可通过nvm切换版本:

nvm install 16
nvm use 16

内容的提问来源于stack exchange,提问作者Festus Akushie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 07:06:32