React Native Android生产环境无法加载index.android.bundle打包错误
React Native Android生产环境index.android.bundle加载失败解决方案(RN 0.70.6 + SDK33)
1. 确认bundle是否被正确打包进AAB
执行以下命令解压生成的AAB文件,检查bundle是否存在:
unzip app-release.aab -d temp_aab ls temp_aab/base/assets/
如果index.android.bundle不存在或文件大小异常(远小于本地调试版本),说明打包过程未正确生成或嵌入bundle。
2. 检查gradle构建配置中的bundle生成逻辑
打开android/app/build.gradle,确认以下配置是否正确:
- 确保
project.ext.react中开启release打包时生成bundle:project.ext.react = [ bundleInRelease: true, // 其他配置... ] - 确认release构建类型依赖
bundleJsAndAssets任务:android { buildTypes { release { // 其他配置... dependsOn bundleJsAndAssets } } }
升级gradle后默认任务依赖可能被覆盖,手动添加可确保bundle被生成并嵌入。
3. 排查NDK版本兼容性问题
NDK从21升级到23可能与RN 0.70.6的JNI底层实现存在兼容性冲突,可尝试以下调整:
- 在
gradle.properties中临时指定NDK版本为21.x验证问题:android.ndkVersion=21.4.7075529 - 检查OneSignal版本是否适配NDK23与SDK33,确保使用官方标注兼容的最新版本。
4. 验证Google Play交付配置
Google Play的App Signing或优化机制可能导致bundle丢失:
- 登录Google Play Console,进入发布 > 设置 > 应用签名,确认未开启可能影响assets的优化选项;
- 临时关闭APK优化验证:在
android/app/build.gradle中添加以下配置,重新构建AAB上传测试(正式发布需恢复混淆配置):android { buildTypes { release { shrinkResources false minifyEnabled false } } }
5. 清理构建缓存
升级gradle后缓存可能存在冲突,执行以下命令彻底清理后重新构建:
# 清理gradle缓存 ./gradlew clean rm -rf android/.gradle android/app/build # 清理RN缓存 npx react-native clean
重新执行./gradlew bundleRelease生成AAB。
6. 调整gradle版本至RN 0.70.x兼容版本
RN 0.70.6官方推荐的gradle wrapper版本为7.4.2,升级至7.5.1可能存在兼容性问题:
- 修改
android/gradle/wrapper/gradle-wrapper.properties中的版本:distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip
构建工具版本7.3.1与RN 0.70.x兼容,无需调整。
内容的提问来源于stack exchange,提问作者Cheyne
相关产品推荐
相关产品推荐

