From 8dcab66e4bbe0278bcec0b598a13895bbc01bdf1 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Tue, 4 Feb 2020 18:52:19 -0800 Subject: [PATCH] Add android log when trying to add a view into a non viewGroup Summary: Easy diff to add extra logging when Fabric tries to add a view inside a view that is not a ViewGroup changelog: [internal] Reviewed By: JoshuaGross Differential Revision: D19737506 fbshipit-source-id: ecb858820de7befc385e725c45b537359e39c0e7 --- .../react/fabric/mounting/MountingManager.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java b/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java index 1e94ac56f44..f20d7e2f296 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java @@ -18,6 +18,7 @@ import androidx.annotation.AnyThread; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.UiThread; +import com.facebook.common.logging.FLog; import com.facebook.infer.annotation.Assertions; import com.facebook.infer.annotation.ThreadConfined; import com.facebook.react.bridge.ReactNoCrashSoftException; @@ -113,6 +114,17 @@ public class MountingManager { public void addViewAt(int parentTag, int tag, int index) { UiThreadUtil.assertOnUiThread(); ViewState parentViewState = getViewState(parentTag); + if (!(parentViewState.mView instanceof ViewGroup)) { + String message = + "Unable to add a view into a view that is not a ViewGroup. ParentTag: " + + parentTag + + " - Tag: " + + tag + + " - Index: " + + index; + FLog.e(TAG, message); + throw new IllegalStateException(message); + } final ViewGroup parentView = (ViewGroup) parentViewState.mView; ViewState viewState = getViewState(tag); final View view = viewState.mView;