You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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 的修复步骤

  1. 升级适配版本
    确保安装的库版本支持RN 0.70,推荐升级到v3.3.0及以上:

    yarn add react-native-splash-screen@latest
    
  2. 修正调用代码
    将启动屏调用代码放在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 的修复步骤

  1. 升级适配版本
    安装支持RN 0.70的版本,推荐v4.0.0及以上:

    yarn add react-native-bootsplash@latest
    
  2. 修正调用代码
    注意该库要求初始化代码放在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 17:51:46