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

如何在React Native Android项目的MainActivity.java中正确添加启动屏配置代码

React Native Splash Screen Android端配置解决方案

构建失败的核心原因

报错通常来自两个问题:

  • 缺少必须的导入包声明
  • onCreate方法放置位置错误,嵌套到了现有其他方法内部

具体修改步骤

  1. 先在文件头部导入必须的依赖,根据你安装的react-native-splash-screen版本二选一即可:
package myApp.tasawk.com;

// 新增导入1:必须添加
import android.os.Bundle;
// 二选一:版本>=0.3.1用这个
import org.devio.rn.splashscreen.SplashScreen;
// 二选一:版本<0.3.1用这个
// import com.cboy.rn.splashscreen.SplashScreen;

import com.facebook.react.ReactActivity;
import com.facebook.react.ReactActivityDelegate;
import com.facebook.react.ReactRootView;
import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;
  1. 将onCreate方法作为MainActivity类的直接成员添加,不要放在其他方法内部,推荐放在getMainComponentName方法下方即可:
public class MainActivity extends ReactActivity {

  /**
   * Returns the name of the main component registered from JavaScript. This is used to schedule
   * rendering of the component.
   */
  @Override
  protected String getMainComponentName() {
    return "myApp";
  }

  // 新增的onCreate方法 start
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      SplashScreen.show(this);
      super.onCreate(savedInstanceState);
  }
  // 新增的onCreate方法 end

  @Override
  protected ReactActivityDelegate createReactActivityDelegate() {
    return new ReactActivityDelegate(this, getMainComponentName()) {
      @Override
      protected ReactRootView createRootView() {
       return new RNGestureHandlerEnabledRootView(MainActivity.this);
      }
    };
  }
}

验证注意点

  • 确保SplashScreen.show(this)的调用顺序在super.onCreate(savedInstanceState)之前,否则启动时会出现白屏
  • 修改完成后先清理Android构建缓存再重新运行,避免缓存导致的报错:进入android目录执行./gradlew clean(Windows端执行gradlew clean)

内容的提问来源于stack exchange,提问作者user16350114

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:15:02