Expo Android crash on invalid value for 'padding'

Since my github issue was mysteriously and unceremoniously deleted, I think that was a clue I should seek help elsewhere. I am running Oreo on a Google Pixel. This snack causes Expo to crash rather than gracefully display an error.

https://snack.expo.io/HybVjhs3b

In a nutshell, create a View that uses a StyleSheet. In the stylesheet, when ‘padding’ or its top/bottom/etc counterparts are set to a string instead of a number, the Expo app crashes.

FWIW, I just tried it on my latest version of the expo app, scanned the QR code and it was fine.

Interesting. Then, what steps should I take to determine why Expo is crashing on my device?

I have just run into this issue too with Expo client version 2.12.0 running on a Samsung Galaxy S8 (Android 9). The snack linked above also crashes Expo for me.

I ran into it with:

<View style={{padding: "64px"}}>...</View>

When running expo start locally, the Expo client just crashes after showing the splash screen and Building JavaScript Bundle.... At this point the Expo app just disappears off the screen. If I try it again, Android prompts me to submit feedback about the crash.

When I try it from a snack, the behaviour is a bit different. I see the splash screen and then it shows the “Something went wrong” screen. If I click on the View error log link it sometimes shows no details whatsoever. Just the home and reload icons at the top with a completely blank space below that. I just tried it again and this time it’s showing the following details:

Uncaught Error: View Manager for tag 13 could not be found
11:52:38 Fatal Error

Uncaught Error: Error while updating property 'padding' in shadow node of type: RCTView
11:52:38 Fatal Error

This is the stacktrace I see when reporting the crash:

Stack trace
java.lang.RuntimeException: abi34_0_0.com.facebook.react.uimanager.IllegalViewOperationException: ViewManager for tag 13 could not be found
at abi34_0_0.com.facebook.react.bridge.ReactContext.handleException(ReactContext.java:320)
at abi34_0_0.com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.java:31)
at abi34_0_0.com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame(ReactChoreographer.java:166)
at abi34_0_0.com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame(ChoreographerCompat.java:84)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:947)
at android.view.Choreographer.doCallbacks(Choreographer.java:761)
at android.view.Choreographer.doFrame(Choreographer.java:693)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:935)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7050)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
Caused by: abi34_0_0.com.facebook.react.uimanager.IllegalViewOperationException: ViewManager for tag 13 could not be found
at abi34_0_0.com.facebook.react.uimanager.NativeViewHierarchyManager.resolveViewManager(NativeViewHierarchyManager.java:111)
at abi34_0_0.com.facebook.react.uimanager.NativeViewHierarchyManager.manageChildren(NativeViewHierarchyManager.java:308)
at abi34_0_0.com.facebook.react.uimanager.UIViewOperationQueue$ManageChildrenOperation.execute(UIViewOperationQueue.java:227)
at abi34_0_0.com.facebook.react.uimanager.UIViewOperationQueue$1.run(UIViewOperationQueue.java:917)
at abi34_0_0.com.facebook.react.uimanager.UIViewOperationQueue.flushPendingBatches(UIViewOperationQueue.java:1025)
at abi34_0_0.com.facebook.react.uimanager.UIViewOperationQueue.access$2600(UIViewOperationQueue.java:46)
at abi34_0_0.com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.doFrameGuarded(UIViewOperationQueue.java:1085)
at abi34_0_0.com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.java:29)
... 13 more