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

React Native Android release崩溃 create_react_context异常

React Native v0.68.2 Android Release包启动崩溃修复

问题表现

  • 开发debug环境运行完全正常,打Android release安装包后启动立即崩溃
  • 新建无任何代码修改的v0.68.2空白RN项目,执行release构建后复现完全相同的崩溃
  • 触发构建使用的命令:
npx react-native run-android --variant=release

崩溃核心信息

崩溃时抛出的异常日志:

FATAL EXCEPTION: create_react_context
Process: com.testreleasebuild, PID: 8291
java.lang.RuntimeException: Unable to load script. Make sure you're either running Metro (run 'npx react-native start') or that your bundle 'index.android.bundle' is packaged correctly for release.
    at com.facebook.react.bridge.CatalystInstanceImpl.jniLoadScriptFromAssets(Native Method)
    at com.facebook.react.bridge.CatalystInstanceImpl.loadScriptFromAssets(CatalystInstanceImpl.java:248)
    at com.facebook.react.bridge.JSBundleLoader$1.loadScript(JSBundleLoader.java:29)
    at com.facebook.react.bridge.CatalystInstanceImpl.runJSBundle(CatalystInstanceImpl.java:277)
    at com.facebook.react.ReactInstanceManager.createReactContext(ReactInstanceManager.java:1422)
    at com.facebook.react.ReactInstanceManager.access$1200(ReactInstanceManager.java:138)
    at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:1111)
    at java.lang.Thread.run(Thread.java:923)

异常根因指向:应用无法加载JS脚本,release包内未正确打包index.android.bundle资源。

修复步骤

按优先级逐一操作验证:

  • 先手动创建安卓工程下的assets目录:进入android/app/src/main路径,新建名为assets的空文件夹,RN构建脚本不会自动创建该目录,目录不存在时会静默跳过bundle打包步骤,不会抛出显式错误。
  • 手动执行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

命令执行无报错后,再执行release构建命令即可正常运行。

  • 检查安卓构建配置,打开android/app/build.gradle文件,找到project.ext.react配置块,确认release构建时自动打bundle的开关已开启:
project.ext.react = [
    enableHermes: false, // 若使用Hermes则改为true,和自身项目配置保持一致即可
    bundleInRelease: true // 必须为true,禁止设为false
]
  • 清除旧构建缓存后重新打包,避免历史缓存干扰:
cd android
./gradlew clean
cd ..
npx react-native run-android --variant=release
  • 打release包前关闭所有运行中的Metro服务进程,避免构建过程误判定为开发环境,跳过本地bundle打包步骤。

内容的提问来源于stack exchange,提问作者Blogger Klik

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 10:21:18