react-native-date-picker: IllegalArgumentException crash on Android
Describe Since upgrading to RN 0.64 we encounter following crash on Android
The weird part here is that in our project we use react-native-gesture-handle in other components but when we scroll to change the date from DatePickerField it starts to crash on Android and the log points out crash because of react-native-gesture-handler. I am not sure that i am right if i post this issue in here but in fact there are maybe related things between DatePickerField with this crash.
Crash log:
IllegalArgumentException. Unable to find JSIModule for class UIManager
java.lang.IllegalArgumentException:
at com.facebook.react.bridge.JSIModuleRegistry.getModule (JSIModuleRegistry.java:39)
at com.facebook.react.bridge.CatalystInstanceImpl.getJSIModule (CatalystInstanceImpl.java:2)
at com.facebook.react.uimanager.UIManagerHelper.getUIManager (UIManagerHelper.java:81)
at com.facebook.react.uimanager.UIManagerHelper.getUIManager (UIManagerHelper.java:1)
at com.facebook.react.uimanager.UIManagerHelper.getUIManagerForReactTag (UIManagerHelper.java:4)
at com.facebook.react.animated.NativeAnimatedNodesManager.handleEvent (NativeAnimatedNodesManager.java:17)
at com.facebook.react.animated.NativeAnimatedNodesManager.onEventDispatch (NativeAnimatedNodesManager.java:6)
at com.facebook.react.uimanager.events.EventDispatcherImpl.dispatchEvent (EventDispatcherImpl.java:27)
at com.facebook.react.uimanager.JSTouchDispatcher.handleTouchEvent (JSTouchDispatcher.java:58)
at com.facebook.react.ReactRootView.dispatchJSTouchEvent (ReactRootView.java:49)
at com.facebook.react.ReactRootView.onInterceptTouchEvent (ReactRootView.java)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2753)
at com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView.dispatchTouchEvent (RNGestureHandlerEnabledRootView.java:12)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3222)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2845)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3222)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2845)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3222)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2845)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3222)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2845)
at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3222)
at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2845)
at com.android.internal.policy.DecorView.superDispatchTouchEvent (DecorView.java:697)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent (PhoneWindow.java:1879)
at android.app.Activity.dispatchTouchEvent (Activity.java:3487)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent (WindowCallbackWrapper.java:2)
at com.android.internal.policy.DecorView.dispatchTouchEvent (DecorView.java:655)
at android.view.View.dispatchPointerEvent (View.java:13732)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent (ViewRootImpl.java:6131)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess (ViewRootImpl.java:5909)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:5358)
at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:5411)
at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:5377)
at android.view.ViewRootImpl$AsyncInputStage.forward (ViewRootImpl.java:5536)
at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:5385)
at android.view.ViewRootImpl$AsyncInputStage.apply (ViewRootImpl.java:5593)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:5358)
at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:5411)
at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:5377)
at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:5385)
at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:5358)
at android.view.ViewRootImpl.deliverInputEvent (ViewRootImpl.java:8420)
at android.view.ViewRootImpl.doProcessInputEvents (ViewRootImpl.java:8353)
at android.view.ViewRootImpl.enqueueInputEvent (ViewRootImpl.java:8306)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent (ViewRootImpl.java:8535)
at android.view.InputEventReceiver.dispatchInputEvent (InputEventReceiver.java:198)
at android.os.MessageQueue.nativePollOnce (MessageQueue.java)
at android.os.MessageQueue.next (MessageQueue.java:326)
at android.os.Looper.loop (Looper.java:181)
at android.app.ActivityThread.main (ActivityThread.java:7050)
at java.lang.reflect.Method.invoke (Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:965)
Smartphone
- OS: Android
- React Native version: 0.64.0
- react-native-date-picker: 3.2.10
- react-native-gesture-handler: 1.10.3
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Reactions: 14
- Comments: 17 (4 by maintainers)
Commits related to this issue
- Update PickerView.java resolved issue: https://github.com/henninghall/react-native-date-picker/issues/301 — committed to nitishprasadspinny/react-native-date-picker by nitishprasadspinny 3 years ago
Here is a patch-package script as a workaround for now
This issue is fixed in react native
0.64.2🥳@sharifhh makes sense. I will take a look to see if this helps to solve the issue
This is due to an issue on React Native Core (a new function that was implemented to support FABRIC architecture).
Error is caused by views that are not directly managed by React Native. In particular, views that are not created by this method: https://github.com/facebook/react-native/blob/master/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java#L140-L141
The Core team is trying to remove the usage of the UIManager.
Since the way React Native Core is checking if View is FABRIC or not is being used with the viewId mod 2: https://github.com/facebook/react-native/blob/24bfa463a7f1b4eac666d038c9d0f919d0cc404f/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/ViewUtil.java#L22
Seems that there is a commit on master that should resolve the issue, should be fixed on the next version of react-native (0.65). https://github.com/facebook/react-native/commit/c317f558f7e5549dffeda1950613ff9844f409e9