diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java b/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java index f7a0a18995f..7ce861de7bf 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java @@ -124,6 +124,17 @@ public class ReactTextView extends AppCompatTextView implements ReactCompoundVie Spanned text = (Spanned) getText(); Layout layout = getLayout(); + if (layout == null) { + // Text layout is calculated during pre-draw phase, so in some cases it can be empty during + // layout phase, which usually happens before drawing. + // The text layout is created by private {@link assumeLayout} method, which we can try to + // invoke directly through reflection or indirectly through some methods that compute it + // (e.g. {@link getExtendedPaddingTop}). + // It is safer, however, to just early return here, as next measure/layout passes are way more + // likely to have the text layout computed. + return; + } + TextInlineViewPlaceholderSpan[] placeholders = text.getSpans(0, text.length(), TextInlineViewPlaceholderSpan.class); ArrayList inlineViewInfoArray =