diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ShadowNodeRegistry.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ShadowNodeRegistry.java index 74a136cac..4ce41a0bb 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ShadowNodeRegistry.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ShadowNodeRegistry.java @@ -9,6 +9,7 @@ package com.facebook.react.uimanager; import android.util.SparseArray; import android.util.SparseBooleanArray; +import android.view.View; import com.facebook.react.common.SingleThreadAsserter; /** @@ -36,6 +37,11 @@ public class ShadowNodeRegistry { public void removeRootNode(int tag) { mThreadAsserter.assertNow(); + if (tag == View.NO_ID) { + // This root node has already been removed (likely due to a threading issue caused by async js + // execution). Ignore this root removal. + return; + } if (!mRootTags.get(tag)) { throw new IllegalViewOperationException( "View with tag " + tag + " is not registered as a root view");