software-mansion / react-native-gesture-handler

Declarative API exposing platform native touch and gesture system to React Native.
https://docs.swmansion.com/react-native-gesture-handler/
MIT License
5.85k stars 954 forks source link

React native required dispatch_sync to load #722

Closed LukePenkava closed 1 year ago

LukePenkava commented 4 years ago

Hi, i am getting this error once in a while when reloading React Native app. No idea, if that is something on my side or what to do with it. But i think that this error has something to do with navigator.geolocation.getCurrentPosition(). Not sure tho. Thanks for any help.

react native required dispatch_sync to load constants for RNGestureHandlerModule. this may lead to deadlocks

SnehalAgrawal commented 4 years ago

Is it an error or showing as a warning?

sowee15 commented 4 years ago

I started getting this as well. It's a warning (yellowbox). Any idea what it means?

msageryd commented 4 years ago

I have seen it occasionally before. But after upgrading from 1.3.0 to 1.4.1 I get it on every app-start in the simulator. @SnehalAgrawal It's a warning.

edit: I'll take it back. It's not every start, but most.

jerryheir commented 4 years ago

Any fix?

newfylox commented 3 years ago

2021 and still have this warning on iOS. I am using react-native: 0.60.6 and react-native-gesture-handler: 1.10.3

hirbod commented 2 years ago

This error showed up for me the very first time after upgrading expo sdk to verison 44. (RNGH v2)

rafaelmaeuer commented 2 years ago

Same error for me, seemed to appear after upgrading to RNGH v2

hirbod commented 2 years ago

I've upgraded to RNGH 2.1.0 - but the error still remained. I've checked the docs once again, and found that we should wrap our app with a GestureHandlerRootView since 2.0.0.

So what I changed

import 'react-native-gesture-handler';
import { GestureHandlerRootView } from 'react-native-gesture-handler';
....

  return (
    <DripsyProvider theme={colorMode === 'dark' ? theme : themeLight}>
      <QueryClientProvider client={RNQueryClient}>
        <SafeAreaProvider initialMetrics={initialWindowMetrics}>
          <GestureHandlerRootView style={{ flex: 1 }}>
            <Navigator theme={combinedTheme} />
          </GestureHandlerRootView>
        </SafeAreaProvider>
      </QueryClientProvider>
    </DripsyProvider>
  );

After wrapping with GestureHandlerRootView, the warning disappeared for me and never returned, even after 40 App restarts. The only thing I am unsure about is the fact that I have to import rngh and import GestureHandlerRootView. Do I still need to import it that way?

cristianoccazinsp commented 2 years ago

I'm wrapping the view, yet I keep getting the same warning. Thoughts?

hirbod commented 2 years ago

I did not dig into it. At least the warning did disappear for me after wrapping it with the RNGHRootView.

At the end, it’s just a warning and we could add an exception to yellow box to get rid of it.

Edit: after couple of restarts, it did appear again for me as well. So my provided "solution" isn't one.

Dramex commented 2 years ago

same issue here.

comur commented 2 years ago

same here

3runoDesign commented 2 years ago

same here!

danielgospodinow commented 2 years ago

Same here.

KhachDavid commented 2 years ago

Same issue here. Wrapping with the RNGHRootView didn't work for me as well

lockieluke commented 2 years ago

i can't believe this issue has been around for two years

KhachDavid commented 2 years ago

i can't believe this issue has been around for two years

Ikr...Is it dangerous to just suppress it and hope for the best?

gdoudeng commented 2 years ago

+1

VladislavDDP commented 2 years ago

same issue, suppose it happens cause of lib version

michaelypes commented 2 years ago

Just done a complete new build and getting this error just showing a simple homescreen in react-navigation. Followed suggested solution and not worked.

"@react-navigation/native": "^6.0.6", "@react-navigation/native-stack": "^6.2.5", "react": "17.0.2", "react-native": "0.66.4", "react-native-gesture-handler": "^2.1.0",

After a bit more research it seems adding the stack is causing the problem

@react-navigation/native-stack

Very basic app setup, with no stack in the navigator it does not cause the error

import 'react-native-gesture-handler';
import * as React from 'react';
import { View, Text } from 'react-native';
import { GestureHandlerRootView } from 'react-native-gesture-handler';
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';

function HomeScreen() {
  return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      <Text>Basic Home Screen</Text>
    </View>
  );
}

const Stack = createNativeStackNavigator();

function App() {
  return (
    <GestureHandlerRootView style={{ flex: 1 }}>
      <NavigationContainer>
        <Stack.Navigator>
          <Stack.Screen name="Home" component={HomeScreen} />
        </Stack.Navigator>
      </NavigationContainer>
    </GestureHandlerRootView>
  );
}

export default App;
3runoDesign commented 2 years ago

I didn't get the error anymore... follow my configuration:


"@react-navigation/elements": "^1.2.1",
"@react-navigation/native": "^6.0.6",
"@react-navigation/stack": "^6.0.11",
"react-native-gesture-handler": "^2.1.0",
"react-native-reanimated": "^2.3.1",
"react-native-safe-area-context": "^3.3.2",
farcondee commented 2 years ago

Finally I got it to work.

My app previously crashed on Android and produced the warning message in ios. Now the app starts and works flawlessly on both platforms. I finally got it to work by downgrading react-native-reanimated.

In package.json, I changed "react-native-reanimated": "~2.3.1" to "react-native-reanimated": "~2.2.4"

Then I ran a yarn install and a pod install in the ios folder

mattahorton commented 2 years ago

Didn't work for me. I am currently ignoring this but would love to know if it's a bug.

nzcodarnoc commented 2 years ago

Thank you so much @farcondee !

Confirming that https://github.com/software-mansion/react-native-gesture-handler/issues/722#issuecomment-1014289859 fixed the problem for me.

filiphorvei commented 2 years ago

Didn't work for me. I am currently ignoring this but would love to know if it's a bug.

It didn't work for me either, but then I looked at react-native-renanimated in node_modules and realized it wasn't actually downgraded by npm when I changed package.json and ran "npm install". I had to run "npm install react-native-reanimated@2.2.4" for it to work :)

dthomason commented 2 years ago

downgrading react-native-reanimated to 2.2.4 worked for me. Ran into the same issue as @filiphorvei and had to rm -rf node_modules to get it to actually downgrade. I've had more issues with that library than any other I think.

jetaggart commented 2 years ago

@farcondee this worked for me as well, thank you! Spent hours hunting around in the dark after updating libraries.

mackenziekira commented 2 years ago

After downgrading to react-native-reanimated@2.2.4, does anyone else see this warning instead?

'SplashScreen.show' has already been called for given view controller.
at node_modules/react-native/Libraries/Utilities/RCTLog.js:34:8 in logIfNoNativeHook
marcusnunes commented 2 years ago

Finally I got it to work.

My app previously crashed on Android and produced the warning message in ios. Now the app starts and works flawlessly on both platforms. I finally got it to work by downgrading react-native-reanimated.

In package.json, I changed "react-native-reanimated": "~2.3.1" to "react-native-reanimated": "~2.2.4"

Then I ran a yarn install and a pod install in the ios folder

This worked here.

LunatiqueCoder commented 2 years ago

Finally I got it to work.

My app previously crashed on Android and produced the warning message in ios. Now the app starts and works flawlessly on both platforms. I finally got it to work by downgrading react-native-reanimated.

In package.json, I changed "react-native-reanimated": "~2.3.1" to "react-native-reanimated": "~2.2.4"

Then I ran a yarn install and a pod install in the ios folder

Indeed this solution also worked for me. As a side note, on the project we're working on, I'm the only one with an M1 Apple Silicon and had this issue. My other colleagues with an Intel did not have this problem. I had to beg my team to downgrade so I could work normally with them.

raja-poudel commented 2 years ago

it doesn't work for me

zoobibackups commented 2 years ago

Any solution? or just downgrade to v1

billnbell commented 2 years ago

https://stackoverflow.com/questions/70915817/getting-error-rctbridge-required-dispatch-sync-to-load-rngesturehandlermodule-t/71551858#71551858

Also, why does 2.2.4 work but later ones don't work - but give this error. Who can look at this?

samshahbazi commented 2 years ago

In package.json, I changed

"react-native-reanimated": "~2.5.0"
to
"react-native-reanimated": "2.4"

Then I ran a yarn install and a pod install in the ios folder

billnbell commented 2 years ago

And you probably got the error.

pke commented 2 years ago

I just upgraded react-native-reanimated to 2.5.0 cause we got Android ANRs with older versions constantly. I am also getting the RNGH dispatch_sync warning (using react-navigation of course). The log entry clearly specifies RNGH as the culprit though, so the question is what might cause dispatch_sync being called during initialisation (that is iOS btw).

billnbell commented 2 years ago

It appears this package is being maintained, but no one ever responds to this issue. We need to upgrade and get rid of this message. How do we do that if none of us knows what the actual issue is?

pke commented 2 years ago

And it actually does make the app unresponsive occationally (as it says in the warning), especially on Android. We see that in ANR reports that reanimated hangs in a lock (probably created by RNGH?).

@jakub-gonet is assigned to this issue GH writes and he works at software mansion so maybe he can shed some insights on this issue?

j-piasecki commented 2 years ago

Hi! It may be caused by the integration between the Gesture Handler and Reanimated to allow for synchronous manipulation of gesture state. We will look into this, but I can't give an ETA unfortunately.

fukemy commented 2 years ago

any solution now?

j-piasecki commented 2 years ago

It's possible that https://github.com/software-mansion/react-native-reanimated/pull/3166 fixes the problem. You could use patch-package to check if it solves the issue for you.

duro commented 2 years ago

@j-piasecki I tired out the version of reanimated that has that fix included, but I still get the warning

j-piasecki commented 2 years ago

In that case, could you prepare an example app to reproduce it? I've tried a new RN 0.67 app with Gesture Handler 2.4.1 and Reanimated 2.8.0 and I didn't get the warning.

pqkluan commented 2 years ago

For anyone who tried the new version but still get the warning, please rebuild your app for native code to take effect.

elrony commented 1 year ago

Looks like this is happening again after I upgraded from react-native-reanimated 2.10.0 to 2.11.0

matallui commented 1 year ago

Same here, after upgrading from 2.9.1 to 2.11.0

j0eii commented 1 year ago

Same here, after upgrading from 2.9.1 to 2.11.0

same, i fallbackto2.8.0

j-piasecki commented 1 year ago

Fixed in https://github.com/software-mansion/react-native-reanimated/pull/3698. Please upgrade react-native-reanimated to 2.12.0.