React-native-gesture-handler: Failed resolution of: Landroid/support/v4/util/Pools$SynchronizedPool

Created on 21 Jun 2019  路  5Comments  路  Source: software-mansion/react-native-gesture-handler

I'm working with react-navigation and before the following code, It was all working. So I had fix a small detail where when I "click" outside the drawer it would close it self. To do so, I found https://stackoverflow.com/a/53396072/1958882, which works pretty well in another project running with "react-native": "0.59.5". But now, in a newest project running "react-native": "0.59.9", it crashes when I "click" outside the drawer.

import com.facebook.react.ReactActivityDelegate;
import com.facebook.react.ReactRootView;
import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;

@Override
protected ReactActivityDelegate createReactActivityDelegate() {
    return new ReactActivityDelegate(this, getMainComponentName()) {
        @Override
        protected ReactRootView createRootView() {
            return new RNGestureHandlerEnabledRootView(MainActivity.this);
        }
    };
}

the error

2019-06-21 13:57:51.664 5989-5989/com.myapp E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.myapp, PID: 5989
    java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/util/Pools$SynchronizedPool;
        at com.swmansion.gesturehandler.react.RNGestureHandlerStateChangeEvent.<clinit>(RNGestureHandlerStateChangeEvent.java:19)
        at com.swmansion.gesturehandler.react.RNGestureHandlerStateChangeEvent.obtain(RNGestureHandlerStateChangeEvent.java:27)
        at com.swmansion.gesturehandler.react.RNGestureHandlerModule.onStateChange(RNGestureHandlerModule.java:683)
        at com.swmansion.gesturehandler.react.RNGestureHandlerModule.access$300(RNGestureHandlerModule.java:41)
        at com.swmansion.gesturehandler.react.RNGestureHandlerModule$1.onStateChange(RNGestureHandlerModule.java:435)
        at com.swmansion.gesturehandler.GestureHandler.dispatchStateChange(GestureHandler.java:76)
        at com.swmansion.gesturehandler.GestureHandlerOrchestrator.onHandlerStateChange(GestureHandlerOrchestrator.java:200)
        at com.swmansion.gesturehandler.GestureHandler.moveToState(GestureHandler.java:328)
        at com.swmansion.gesturehandler.GestureHandler.begin(GestureHandler.java:440)
        at com.swmansion.gesturehandler.TapGestureHandler.onHandle(TapGestureHandler.java:145)
        at com.swmansion.gesturehandler.GestureHandler.handle(GestureHandler.java:315)
        at com.swmansion.gesturehandler.GestureHandlerOrchestrator.deliverEventToGestureHandler(GestureHandlerOrchestrator.java:301)
        at com.swmansion.gesturehandler.GestureHandlerOrchestrator.deliverEventToGestureHandlers(GestureHandlerOrchestrator.java:259)
        at com.swmansion.gesturehandler.GestureHandlerOrchestrator.onTouchEvent(GestureHandlerOrchestrator.java:101)
        at com.swmansion.gesturehandler.react.RNGestureHandlerRootHelper.dispatchTouchEvent(RNGestureHandlerRootHelper.java:121)
        at com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView.dispatchTouchEvent(RNGestureHandlerEnabledRootView.java:31)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
        at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:413)
        at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1808)
        at android.app.Activity.dispatchTouchEvent(Activity.java:3061)
        at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
        at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:375)
        at android.view.View.dispatchPointerEvent(View.java:10243)
        at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4438)
        at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4306)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3906)
        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3872)
        at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3999)
        at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3880)
        at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4056)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3906)
        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3872)
2019-06-21 13:57:51.664 5989-5989/com.myapp E/AndroidRuntime:     at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3880)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
        at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6246)
        at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6220)
        at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6181)
        at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6349)
        at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
        at android.os.MessageQueue.nativePollOnce(Native Method)
        at android.os.MessageQueue.next(MessageQueue.java:323)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:6119)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.util.Pools$SynchronizedPool" on path: DexPathList[[zip file "/data/app/com.myapp-1/base.apk"],nativeLibraryDirectories=[/data/app/com.myapp-1/lib/x86, /data/app/com.myapp-1/base.apk!/lib/x86, /system/lib, /vendor/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
            ... 57 more

current versions

"react": "16.8.3",
"react-native": "0.59.9",
"react-native-gesture-handler": "^1.3.0",
"react-navigation": "^3.11.0",

Most helpful comment

facing the same problem after i migrated to AndroidX.
Solution migrate react-native-gesture-handler to android x too.

All 5 comments

facing the same problem after i migrated to AndroidX.
Solution migrate react-native-gesture-handler to android x too.

@joegichuru Can you explain how you did that?

This PR fixes it, you can use that one for now: https://github.com/kmagiera/react-native-gesture-handler/pull/650

image
鐢╥mport androidx.core.util.Pools;
鏇夸唬import android.support.v4.util.Pools;

We migrated to androidx some time ago, I think this is outdated.

Was this page helpful?
0 / 5 - 0 ratings