React Native 0.71.13安卓生产构建崩溃:提示需运行Metro
解决React Native 0.71.13 Android生产构建启动崩溃(无法加载脚本)问题
针对你升级后遇到的Android生产构建崩溃问题,结合RN版本迭代的常见坑,给你几个排查和修复方向:
1. 确认Bundle打包路径与Gradle配置匹配
- 检查
android/app/build.gradle中是否正确配置了bundle生成规则,确保release构建时自动打包app.bundle到安装包中:project.ext.react = [ enableHermes: true, // 若启用Hermes请保持一致 bundleInRelease: true, bundleInDebug: false, entryFile: "index.js", bundleAssetName: "index.android.bundle" // 需与报错中提及的bundle文件名对应 ] - 执行
./gradlew bundleRelease后,查看android/app/build/generated/assets/react/release目录下是否存在对应的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/
2. 匹配RN 0.71.x官方推荐的Gradle版本组合
RN 0.71.x官方适配的Gradle版本为7.5,Gradle插件版本为7.2.2,不要盲目混用旧版本:
- 修改
android/gradle/wrapper/gradle-wrapper.properties:distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip - 修改
android/build.gradle中的插件版本:buildscript { dependencies { classpath("com.android.tools.build:gradle:7.2.2") // 其他依赖配置... } }
3. 验证Hermes配置(若启用)
如果开启了Hermes,确保release构建时正确生成字节码:
- 在
android/app/build.gradle中确认配置:def enableHermes = project.ext.react.get("enableHermes", true); // ... dependencies { if (enableHermes) { implementation("com.facebook.react:hermes-engine:+") { exclude group:'com.facebook.fbjni' } } else { implementation jscFlavor } } - 执行
./gradlew clean后重新构建,避免缓存残留问题。
4. 检查AndroidManifest.xml网络配置
部分设备会因网络限制导致脚本加载异常,确保配置无错误:
<application android:usesCleartextTraffic="true" // 根据业务需求调整,避免不必要的网络限制 // ... >
同时确认未添加会阻断资源加载的android:networkSecurityConfig规则。
5. 排查签名与渠道打包干扰
如果使用多渠道打包或自定义签名配置,先尝试生成无渠道的纯release APK测试,排除签名配置错误、渠道脚本篡改导致的资源加载失败问题。
内容的提问来源于stack exchange,提问作者SDapkus
相关产品推荐
相关产品推荐

