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

React Native Android Release构建启动崩溃,请求技术排查

React Native 0.70.8 Android Release包启动崩溃排查与解决

崩溃原因

从应用商店预启动报告的错误信息可直接定位核心问题:

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.

说明Release构建的APK中未包含离线的index.android.bundle脚本文件,React Native应用启动时无法加载必需的JS代码,导致直接崩溃。

你提供的设备日志中,前面的SoLoader警告属于正常系统库查找流程(系统级库如libdl.so、libc.so会从系统路径加载,应用内找不到是正常现象),并非崩溃触发点。

解决方法

方法1:手动生成并打包bundle

  1. 清理旧构建缓存
    ./gradlew clean
    
  2. 生成Release版JS bundle及资源
    # 若项目入口是index.tsx,将--entry-file改为index.tsx
    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/
    
  3. 重新构建Release包
    ./gradlew assembleRelease
    

方法2:配置Gradle自动打包bundle(推荐)

修改android/app/build.gradle文件,在project.ext.react配置块中添加/确保以下配置:

project.ext.react = [
    enableHermes: false, // 若使用Hermes引擎则改为true
    bundleInRelease: true, // 关键:Release构建时自动打包bundle
    devDisabledInRelease: true,
    entryFile: "index.js", // 对应你的项目入口文件名
]

配置完成后,直接执行构建命令即可:

./gradlew assembleRelease

方法3:验证bundle是否已正确打包

解压构建好的APK文件,检查assets目录下是否存在index.android.bundle文件;或查看android/app/build/generated/assets/react/release/目录,确认bundle文件已生成。

额外注意事项

  • 确保项目入口文件名与配置一致(常见为index.js或index.tsx)
  • 若使用Hermes引擎,需确保enableHermes: true,此时会生成index.android.bundle.hbc替代普通bundle,Gradle配置需同步调整
  • M2芯片Mac上构建时,需保证Android SDK、NDK版本与React Native 0.70.8兼容(官方推荐NDK 23.x版本)

内容的提问来源于stack exchange,提问作者Alix Humbert

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:32:04