react-native-splash-screen icon indicating copy to clipboard operation
react-native-splash-screen copied to clipboard

RN :0.70.6 报错 各位怎么解决的啊

Open JslinSir opened this issue 1 year ago • 5 comments

    <img width="721" alt="image" src="https://user-images.githubusercontent.com/30678791/202858369-ace2b980-3192-47fe-a5a7-e964b254ac0a.png">

Error still reported

package com.driverapp;
import android.os.Bundle;
import com.facebook.react.ReactActivity;
import org.devio.rn.splashscreen.SplashScreen;
import com.facebook.react.ReactActivityDelegate;
import com.facebook.react.ReactRootView;



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

  /**
   * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and
   * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer
   * (Paper).
   */
  @Override
  protected ReactActivityDelegate createReactActivityDelegate() {
    return new MainActivityDelegate(this, getMainComponentName());
  }

  public static class MainActivityDelegate extends ReactActivityDelegate {
    public MainActivityDelegate(ReactActivity activity, String mainComponentName) {
      super(activity, mainComponentName);
    }

    @Override
    protected ReactRootView createRootView() {
      ReactRootView reactRootView = new ReactRootView(getContext());
      // If you opted-in for the New Architecture, we enable the Fabric Renderer.
      reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);
      return reactRootView;
    }

    @Override
    protected boolean isConcurrentRootEnabled() {
      // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).
      // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html
      return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
    }

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

  }
}

Originally posted by @JslinSir in https://github.com/crazycodeboy/react-native-splash-screen/issues/591#issuecomment-1320908420

JslinSir avatar Nov 20 '22 00:11 JslinSir

Can you try this, it works for me

package com.driverapp;
import android.os.Bundle;
import com.facebook.react.ReactActivity;
import org.devio.rn.splashscreen.SplashScreen;
import com.facebook.react.ReactActivityDelegate;
import com.facebook.react.ReactRootView;



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

    /**
     * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and
     * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer
     * (Paper).
     */
    @Override
    protected ReactActivityDelegate createReactActivityDelegate() {
        return new MainActivityDelegate(this, getMainComponentName());
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        SplashScreen.show(this);
        super.onCreate(savedInstanceState);
    }

  public static class MainActivityDelegate extends ReactActivityDelegate {
    public MainActivityDelegate(ReactActivity activity, String mainComponentName) {
      super(activity, mainComponentName);
    }

    @Override
    protected ReactRootView createRootView() {
      ReactRootView reactRootView = new ReactRootView(getContext());
      // If you opted-in for the New Architecture, we enable the Fabric Renderer.
      reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);
      return reactRootView;
    }

    @Override
    protected boolean isConcurrentRootEnabled() {
      // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).
      // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html
      return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
    }

  }
}

santhoshjohn avatar Nov 30 '22 09:11 santhoshjohn

MainApplication.java 添加如下代码:

 @Override
  public void onCreate() {
    super.onCreate();
    // If you opted-in for the New Architecture, we enable the TurboModule system
    ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
    SoLoader.init(this, /* native exopackage */ false);
      SplashScreen.show(this,R.style.SplashScreenTheme,true)
    initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
  }

JslinSir avatar Dec 16 '22 06:12 JslinSir

Hi @here, Im facing the app crash issue when I keep the SplashScreen.show(this); on MainActivity.java with react native 0.70.6 version , I tried all the above scenarios and still facing the error's can you please help me out to fix this issue.

jhansidev avatar Dec 27 '22 16:12 jhansidev

same crash issue with me

zhuweideng avatar Jan 16 '23 00:01 zhuweideng

It works for me https://github.com/crazycodeboy/react-native-splash-screen/issues/563#issuecomment-1073013870

jobayer977 avatar Jan 22 '23 12:01 jobayer977