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
- 清理旧构建缓存
./gradlew clean - 生成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/ - 重新构建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
相关产品推荐
相关产品推荐

