React Native集成到现有Android项目后白屏怎么办?
我按照官方文档把React Native集成进了一个已有的Android应用,但启动RN页面时一直显示白屏,控制台也没报错。试过重新打包bundle、检查Activity配置,还是不行。
主Activity里是这样加载的:
mReactRootView.startReactApplication(mReactInstanceManager, "MyApp", null);
setContentView(mReactRootView);
入口文件index.js里也导出了组件,但就是不渲染,是不是哪里漏了?
第一看你的index.js有没有注册组件,JS里面必须要有这行:
注意这里的'MyApp'必须和startReactApplication里的字符串完全一致,包括大小写。
第二检查dev server有没有跑起来,如果是debug包需要确保metro服务在运行。可以试下在Android Studio的logcat里过滤"ReactNativeJS"看有没有JS端的日志。
第三可能是依赖版本冲突,特别是React Native版本和gradle插件版本不匹配。建议用npx react-native info检查下环境。
还有个隐藏坑点,如果你是Android 10+设备,要检查下是否开启了网络权限,因为debug模式下RN会从本地服务器加载JS bundle。
要是还不行,可以尝试在Application的onCreate里加个延迟:
有时候是RN还没初始化完就被调用了。