Skip to content

[Android] com.facebook.react.views.scroll.ReactScrollView.onTouchEvent java.lang.IllegalArgumentException #3921

@exzos28

Description

@exzos28

Description

Hello, I have a clicker game, and I see a huge number of crashes with an error.

There was pull request #3642, but these changes were not accepted.

Please advise if I can expect this bug to be reviewed.

User-perceived crash rate 4.26%

Image

Almost all crashes are related to this error.

Full log:

Exception java.lang.IllegalArgumentException: pointerIndex out of range
  at android.view.MotionEvent.nativeGetAxisValue
  at android.view.MotionEvent.getY (MotionEvent.java:2447)
  at android.widget.ScrollView.onTouchEvent (ScrollView.java:895)
  at com.facebook.react.views.scroll.ReactScrollView.onTouchEvent (ReactScrollView.java:548)
  at com.swmansion.gesturehandler.core.NativeViewGestureHandler$NativeViewGestureHandlerHook$DefaultImpls.sendTouchEvent (NativeViewGestureHandler.kt:252)
  at com.swmansion.gesturehandler.core.NativeViewGestureHandler$ScrollViewHook.sendTouchEvent (NativeViewGestureHandler.kt:337)
  at com.swmansion.gesturehandler.core.NativeViewGestureHandler.onHandle (NativeViewGestureHandler.kt:149)
  at com.swmansion.gesturehandler.core.GestureHandler.handle (GestureHandler.kt:392)
  at com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.deliverEventToGestureHandler (GestureHandlerOrchestrator.kt:314)
  at com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.deliverEventToGestureHandlers (GestureHandlerOrchestrator.kt:266)
  at com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.onTouchEvent (GestureHandlerOrchestrator.kt:57)
  at com.swmansion.gesturehandler.react.RNGestureHandlerRootHelper.dispatchTouchEvent (RNGestureHandlerRootHelper.kt:119)
  at com.swmansion.gesturehandler.react.RNGestureHandlerRootView.dispatchTouchEvent (RNGestureHandlerRootView.kt:37)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3131)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2812)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3131)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2812)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3131)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2812)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3131)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2812)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3131)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2812)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3131)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2812)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3131)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2812)
  at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3131)
  at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2812)
  at com.android.internal.policy.DecorView.superDispatchTouchEvent (DecorView.java:572)
  at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent (PhoneWindow.java:1895)
  at android.app.Activity.dispatchTouchEvent (Activity.java:4274)
  at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent (WindowCallbackWrapper.java:69)
  at io.sentry.android.core.internal.gestures.WindowCallbackAdapter.dispatchTouchEvent (WindowCallbackAdapter.java:39)
  at io.sentry.android.core.internal.gestures.SentryWindowCallback.dispatchTouchEvent (SentryWindowCallback.java:66)
  at io.sentry.android.replay.util.FixedWindowCallback.dispatchTouchEvent (FixedWindowCallback.java:68)
  at io.sentry.android.replay.gestures.GestureRecorder$SentryReplayGestureRecorder.dispatchTouchEvent (GestureRecorder.kt:84)
  at io.sentry.android.core.internal.gestures.WindowCallbackAdapter.dispatchTouchEvent (WindowCallbackAdapter.java:39)
  at io.sentry.android.core.internal.gestures.SentryWindowCallback.dispatchTouchEvent (SentryWindowCallback.java:66)
  at com.android.internal.policy.DecorView.dispatchTouchEvent (DecorView.java:530)
  at android.view.View.dispatchPointerEvent (View.java:15117)
  at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent (ViewRootImpl.java:6663)
  at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess (ViewRootImpl.java:6458)
  at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:5901)
  at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:5958)
  at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:5924)
  at android.view.ViewRootImpl$AsyncInputStage.forward (ViewRootImpl.java:6089)
  at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:5932)
  at android.view.ViewRootImpl$AsyncInputStage.apply (ViewRootImpl.java:6146)
  at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:5905)
  at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:5958)
  at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:5924)
  at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:5932)
  at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:5905)
  at android.view.ViewRootImpl.deliverInputEvent (ViewRootImpl.java:8906)
  at android.view.ViewRootImpl.doProcessInputEvents (ViewRootImpl.java:8857)
  at android.view.ViewRootImpl.enqueueInputEvent (ViewRootImpl.java:8825)
  at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent (ViewRootImpl.java:9042)
  at android.view.InputEventReceiver.dispatchInputEvent (InputEventReceiver.java:281)
  at android.os.MessageQueue.nativePollOnce
  at android.os.MessageQueue.next (MessageQueue.java:340)
  at android.os.Looper.loopOnce (Looper.java:168)
  at android.os.Looper.loop (Looper.java:299)
  at android.app.ActivityThread.main (ActivityThread.java:8319)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:556)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1038)

Steps to reproduce

I can't reproduce this on my devices. The usage is approximately as follows:

import {Canvas} from '@shopify/react-native-skia';

import {GestureHandlerRootView, ScrollView, GestureDetector} from 'react-native-gesture-handler';

<ScrollView>
  <GestureHandlerRootView>
     <GestureDetector gesture={...}>
       <Canvas
          pointerEvents="none"
          ....
       />
     </GestureDetector>
  </GestureHandlerRootView>
</ScrollView>

A link to a Gist, an Expo Snack or a link to a repository based on this template that reproduces the bug.

Gesture Handler version

2.30.0

React Native version

0.81.5

Platforms

Android

JavaScript runtime

Hermes

Workflow

None

Architecture

New Architecture (Fabric)

Build type

None

Device

Real device

Device model

No response

Acknowledgements

Yes

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions