React Native Android打包时index.android.bundle被覆盖致空白屏求助
解决方案:阻止Release编译时自动生成bundle并使用自定义文件
1. 禁用Gradle自动生成Release bundle
找到Android项目的android/app/build.gradle文件,定位到project.ext.react配置块(没有的话直接添加),加入bundleInRelease: false,彻底阻止Release构建时自动执行bundle生成任务:
project.ext.react = [ enableHermes: true, // 保留你原本的Hermes启用配置 bundleInRelease: false, // 核心配置:关闭Release自动打包 // 其他已有配置(如jsBundleDir、resourcesDir等)保持不变 ]
2. 确保自定义bundle被正确打包
- 将你指定的
index.android.bundle文件放到android/app/src/main/assets目录(若assets目录不存在则手动创建)。 - 检查
android/app/build.gradle的sourceSets配置,确保assets目录被Gradle正确识别:
android { sourceSets { main { assets.srcDirs = ['src/main/assets'] } } }
3. 清理构建缓存
执行命令清理旧的构建残留,避免自动生成的bundle文件干扰:
./gradlew clean
4. 执行Release构建
现在运行Release编译命令:
./gradlew assembleRelease
编译完成后,可解压APK查看assets目录,确认里面的index.android.bundle是你指定的文件,不会被覆盖。
额外排查点
- 若问题仍存在,检查项目中是否有自定义Gradle任务或第三方插件在触发bundle生成,找到后禁用对应任务。
- 若使用预编译的Hermes字节码bundle,确保
project.ext.react中未配置强制重新编译Hermes的参数,保持默认配置即可。
内容的提问来源于stack exchange,提问作者Maksim
相关产品推荐
相关产品推荐

