React Native集成到现有Android项目后白屏怎么办?

心霞 Dev 阅读 94

我按照官方文档把React Native集成进了一个已有的Android应用,但启动RN页面时一直显示白屏,控制台也没报错。试过重新打包bundle、检查Activity配置,还是不行。

主Activity里是这样加载的:

mReactRootView.startReactApplication(mReactInstanceManager, "MyApp", null);
setContentView(mReactRootView);

入口文件index.js里也导出了组件,但就是不渲染,是不是哪里漏了?

我来解答 赞 7 收藏
二维码
手机扫码查看
1 条解答
慕容新艳
白屏问题我遇到过太多次了,说几个常见的坑点你检查下:

第一看你的index.js有没有注册组件,JS里面必须要有这行:
AppRegistry.registerComponent('MyApp', () => YourComponent);

注意这里的'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里加个延迟:
getCurrentActivity().runOnUiThread(() -> {
new Handler().postDelayed(() -> {
// 你的启动代码
}, 1000);
});

有时候是RN还没初始化完就被调用了。
点赞
2026-03-07 14:00