React Native 0.70.0中SplashScreen类型转换错误求助
解决方案:React Native 0.70 启动屏库参数类型错误问题
问题根源
React Native 0.69+版本调整了MainActivity的内部结构,若你在MainActivityDelegate实例中直接传递this给启动屏库的方法,会因类型不匹配报错(MainActivityDelegate无法转换为Activity)。同时旧版本的启动屏库可能未适配RN 0.70的API变化。
针对 react-native-splash-screen 的修复步骤
升级适配版本
确保安装的库版本支持RN 0.70,推荐升级到v3.3.0及以上:yarn add react-native-splash-screen@latest修正调用代码
将启动屏调用代码放在MainActivity的onCreate方法中,直接传递this(MainActivity本身是Activity子类):// MainActivity.java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SplashScreen.show(this); // 此处this为MainActivity实例,符合参数要求 }若必须在
MainActivityDelegate中调用,需获取宿主Activity实例:SplashScreen.show(getActivity());
针对 react-native-bootsplash 的修复步骤
升级适配版本
安装支持RN 0.70的版本,推荐v4.0.0及以上:yarn add react-native-bootsplash@latest修正调用代码
注意该库要求初始化代码放在super.onCreate之前,传递MainActivity的this:// MainActivity.java @Override protected void onCreate(Bundle savedInstanceState) { RNBootSplash.init(this); // 先初始化启动屏,再执行父类方法 super.onCreate(savedInstanceState); }若在
MainActivityDelegate中调用,替换为:RNBootSplash.init(getActivity());
额外排查操作
- 确认
MainActivity继承自ReactActivity,而非其他自定义类 - 清理Android构建缓存:
cd android && ./gradlew clean - 重新安装依赖并同步项目:
yarn install && npx pod-install # iOS端需执行pod-install
内容的提问来源于stack exchange,提问作者Irene_MJ
相关产品推荐
相关产品推荐

