dev*_*wat 7 android reactjs react-native
您好,我正在尝试在本机android内部集成react-native应用程序。我按照步骤给出以下链接
https://facebook.github.io/react-native/docs/integration-with-existing-apps https://medium.com/mindorks/react-native-integration-with-existing-app-f2757c2e672d
这是我的反应活动代码
super.onCreate(savedInstanceState);
mReactRootView = new ReactRootView(this);
mReactInstanceManager = ReactInstanceManager.
builder()
.setApplication(getApplication())
.setBundleAssetName("index.android.bundle")
.setJSMainModulePath("index.android")
.addPackage(new MainReactPackage())
.setUseDeveloperSupport(BuildConfig.DEBUG)
.setInitialLifecycleState(LifecycleState.RESUMED)
.build();
mReactRootView.startReactApplication(mReactInstanceManager, "AwesomeProject", null);
setContentView(mReactRootView);
Run Code Online (Sandbox Code Playgroud)
但是我的反应活动启动时出现以下错误
java.lang.AssertionError: Activity needs to be set if initial lifecycle state is resumed
at com.facebook.infer.annotation.Assertions.assertNotNull(Assertions.java:35)
at com.facebook.react.ReactInstanceManagerBuilder.build(ReactInstanceManagerBuilder.java:250)
at com.skw.android_react_2.MyReactActivity.onCreate(MyReactActivity.java:35)
at android.app.Activity.performCreate(Activity.java:7383)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3256)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3411)
at android.app.ActivityThread.-wrap12(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1994)
at android.os.Handler.dispatchMessage(Handler.java:108)
at android.os.Looper.loop(Looper.java:166)
at android.app.ActivityThread.main(ActivityThread.java:7529)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
Run Code Online (Sandbox Code Playgroud)
该如何解决呢?
您可以通过两种方式解决此问题。要么设置活动:
mReactInstanceManager = ReactInstanceManager.builder()
.setApplication(getApplication())
.setCurrentActivity(this) // <== *** HERE ***
.setBundleAssetName("index.android.bundle")
.setJSMainModulePath("index.android")
.addPackage(new MainReactPackage())
.setUseDeveloperSupport(BuildConfig.DEBUG)
.setInitialLifecycleState(LifecycleState.RESUMED)
.build();
Run Code Online (Sandbox Code Playgroud)
...或将初始生命周期状态更改为以下内容LifecycleState.RESUMED:
mReactInstanceManager = ReactInstanceManager.builder()
.setApplication(getApplication())
.setBundleAssetName("index.android.bundle")
.setJSMainModulePath("index.android")
.addPackage(new MainReactPackage())
.setUseDeveloperSupport(BuildConfig.DEBUG)
.setInitialLifecycleState(LifecycleState.BEFORE_CREATE) // <== *** HERE ***
.build();
Run Code Online (Sandbox Code Playgroud)
伙计们,如果您在本机 Android 中集成 React Native 应用程序,请将 android studio 更新到最新版本并更新 android 插件并使用 androidX,androidx jetifire 无法帮助需要将项目迁移到 androidx
| 归档时间: |
|
| 查看次数: |
434 次 |
| 最近记录: |