在android上的react本机应用程序中启动屏幕不起作用

在android上的react本机应用程序中启动屏幕不起作用,android,react-native-android,splash-screen,Android,React Native Android,Splash Screen,我有react原生应用程序,我需要在android上实现一个启动屏幕。我的步骤是:将png图像放到app/src/main/res/mibmap,在app/src/main/res/drawable/中创建background_splash.xml,在app/src/main/res/values/styles.xml中添加SplashTheme,更改AndroidManifest.xml,更改MainActivity.java,在src/main/java/中创建SplashActivity.

我有react原生应用程序,我需要在android上实现一个启动屏幕。我的步骤是:将png图像放到app/src/main/res/mibmap,在app/src/main/res/drawable/中创建background_splash.xml,在app/src/main/res/values/styles.xml中添加SplashTheme,更改AndroidManifest.xml,更改MainActivity.java,在src/main/java/中创建SplashActivity.java类。但是我的启动屏幕没有出现在应用程序中。你能解释一下我做错了什么吗

background_splash.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/black" />

    <item>
        <bitmap
            android:src="mipmap/splash_screen"
            android:gravity="center" />
    </item>
</layer-list>
SplashActivity.java

package broker.mapp;

import android.os.Bundle;


import com.facebook.react.ReactActivity;
import io.fabric.sdk.android.Fabric;
import com.crashlytics.android.core.CrashlyticsCore;
import com.crashlytics.android.Crashlytics;
import android.content.Intent;
import android.content.res.Configuration;
import org.devio.rn.splashscreen.SplashScreen;

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 "BrokerMapp";
    }





    @Override
    protected void onCreate(Bundle savedInstanceState) {
        SplashScreen.show(this, true);
        super.onCreate(savedInstanceState);

        CrashlyticsCore core = new 
        CrashlyticsCore.Builder().disabled(BuildConfig.USE_FABRIC != 
        "TRUE").build();
        Fabric.with(this, new 
        Crashlytics.Builder().core(core).build());
    }


    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        Intent intent = new Intent("onConfigurationChanged");
        intent.putExtra("newConfig", newConfig);
        this.sendBroadcast(intent);
    }
}
package com.app;

import android.content.Intent;
import android.os.Bundle;

import androidx.appcompat.app.AppCompatActivity;

public class SplashActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent intent = new Intent(this, rshb.broker.mapp.MainActivity.class);
        startActivity(intent);
        finish();
    }
}

在onCreate方法中尝试下面的代码

  new Handler().postDelayed(new Runnable() {
                      @Override

                  public void run() {

                         Intent intent = new Intent(SplashActivity.this,MainActivity.class);
                         startActivity(intent);
                         finish();
                  }
              }, 3000);

我在javaI上使用react native,android版本我在答案中做了更改,请在android Studio的onCreate方法中调用它,我得到以下错误:执行时出错:am start-n“APPLICATION\u ID\u NOT\u SET/broker.mapp.SplashActivity”-a android.intent.action.MAIN-c android.intent.category.LAUNCHER开始:intent{act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]cmp=APPLICATION\u ID\u NOT\u SET/rshb.broker.mapp.SplashActivity}错误类型3错误:活动类{APPLICATION\u ID\u NOT\u SET/rshb.broker.mapp.SplashActivity}不存在。启动活动时出错
package broker.mapp;

import android.os.Bundle;


import com.facebook.react.ReactActivity;
import io.fabric.sdk.android.Fabric;
import com.crashlytics.android.core.CrashlyticsCore;
import com.crashlytics.android.Crashlytics;
import android.content.Intent;
import android.content.res.Configuration;
import org.devio.rn.splashscreen.SplashScreen;

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 "BrokerMapp";
    }





    @Override
    protected void onCreate(Bundle savedInstanceState) {
        SplashScreen.show(this, true);
        super.onCreate(savedInstanceState);

        CrashlyticsCore core = new 
        CrashlyticsCore.Builder().disabled(BuildConfig.USE_FABRIC != 
        "TRUE").build();
        Fabric.with(this, new 
        Crashlytics.Builder().core(core).build());
    }


    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        Intent intent = new Intent("onConfigurationChanged");
        intent.putExtra("newConfig", newConfig);
        this.sendBroadcast(intent);
    }
}
package com.app;

import android.content.Intent;
import android.os.Bundle;

import androidx.appcompat.app.AppCompatActivity;

public class SplashActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent intent = new Intent(this, rshb.broker.mapp.MainActivity.class);
        startActivity(intent);
        finish();
    }
}
  new Handler().postDelayed(new Runnable() {
                      @Override

                  public void run() {

                         Intent intent = new Intent(SplashActivity.this,MainActivity.class);
                         startActivity(intent);
                         finish();
                  }
              }, 3000);