diff --git a/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppTestActivity.java b/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppTestActivity.java index 85c8ab0ff22623..6fdc5431de63bf 100644 --- a/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppTestActivity.java +++ b/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppTestActivity.java @@ -213,6 +213,14 @@ public void loadBundle(final ReactInstanceSpecForTest spec, String bundleName, b } else { builder.addPackage(new MainReactPackage()); } + /** + * The {@link ReactContext#mCurrentActivity} never to be set if initial lifecycle state is resumed. + * So we should call {@link ReactInstanceManagerBuilder#setCurrentActivity}. + * + * Finally,{@link ReactInstanceManagerBuilder#build()} will create instance of {@link ReactInstanceManager}. + * And also will set {@link ReactContext#mCurrentActivity}. + */ + builder.setCurrentActivity(this); builder .addPackage(new InstanceSpecForTestPackage(spec)) // By not setting a JS module name, we force the bundle to be always loaded from diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java index 00f3bb5d00373b..47fc17b0ee7315 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java @@ -246,6 +246,12 @@ public ReactInstanceManager build() { mApplication, "Application property has not been set with this builder"); + if (mInitialLifecycleState == LifecycleState.RESUMED) { + Assertions.assertNotNull( + mCurrentActivity, + "Activity needs to be set if initial lifecycle state is resumed"); + } + Assertions.assertCondition( mUseDeveloperSupport || mJSBundleAssetUrl != null || mJSBundleLoader != null, "JS Bundle File or Asset URL has to be provided when dev support is disabled");