software-mansion / react-native-reanimated

React Native's Animated library reimplemented
https://docs.swmansion.com/react-native-reanimated/
MIT License
8.89k stars 1.3k forks source link

Exception in Hostfunction: not implemented #5974

Closed ShahzaibMunir closed 3 months ago

ShahzaibMunir commented 5 months ago

Description

Screenshot 2024-05-05 at 12 00 10 AM

this error produce after installation of the app

Steps to reproduce

Add library to package.json file run yarn pod install install app

Snack or a link to a repository

I have problem in my project

Reanimated version

3.8.1

React Native version

0.73.0

Platforms

Android, iOS

JavaScript runtime

None

Workflow

None

Architecture

None

Build type

None

Device

None

Device model

No response

Acknowledgements

Yes

ShahzaibMunir commented 5 months ago

I have my own project that is not possible to share

tomekzaw commented 5 months ago

@ShahzaibMunir Can you please run pod install in ios directory of your app again and see if it helps?

jenny-chiang commented 5 months ago

I have the same problem. I've tried deleting the Pods folder and run pod install, but still can't solve it.

Reanimated version 3.10.0 React Native version 0.73.8 @react-navigation/drawer version 6.6.15 react-native-gesture-handler version 2.12.0

NeverGone97 commented 5 months ago

I have the same problem. I've tried deleting nodemodule, yarn lock ,pod lock and run again, the Pods folder and run pod install, but still can't solve it.

Reanimated version 3.10.0 React Native version 0.72.4

daveosterjr commented 5 months ago

Getting same issue here as well.

Squanbri commented 5 months ago

Exception in HostFunction: <unknown>

"react-native-gesture-handler" - "2.14.1" "react-native-reanimated" - "3.8.1"

Got the same error on any use of reanimated

Geenesh03 commented 5 months ago

Facing the same issue, Error: Exception in HostFunction: Not implemented

Please let me know if there is any fix for this issue

tomekzaw commented 5 months ago

Thanks for reporting this problem.

Can you please submit a repro or at least paste full logs from Metro console (from the very beginning)?

akylbek-hostaways commented 5 months ago

@tomekzaw It seems like this issue happens when we try to use "@gorhom/bottom-sheet": "^4.5.1", and the latest reanimated version

Geenesh commented 5 months ago

One possible solution is that we can downgrade the version of react-native-reanimated to something less than 3.10.0 both globally and within the project. This solved the issue for me until react-native-reanimated solves the issue.

tomekzaw commented 5 months ago

I've asked @szydlovsky to investigate this issue, fingers crossed 🤞

szydlovsky commented 5 months ago

@ShahzaibMunir @jenny-chiang @NeverGone97 @daveosterjr @Squanbri @Geenesh03 @akylbek-hostaways (sorry for the verbose ping) Hey everyone! I will soon try to find a repro for the issue, but before that try making a full clear of the project:

  1. Run git clean -xdf from the root of the project
  2. From the root execute: yarn && yarn build && cd ios && bundle install && bundle exec pod install && cd .. && yarn start --reset-cache It pretty much resets all caches and stuff

Let me know if made any difference. If not - I will proceed to finding the repro.

szydlovsky commented 5 months ago

Also, @akylbek-hostaways could you try applying the patch from here? Since you say it is connected to @gorhom/bottom-sheet that might fix it.

PrinceD96 commented 5 months ago

@szydlovsky I just tried your steps but I keep getting

Exception in Hostfunction: not implemented

akylbek-hostaways commented 5 months ago

@szydlovsky It's still not working. I'm getting these errors:

ERROR  Error: Exception in HostFunction: Not implemented 
 ERROR  TypeError: undefined is not an object (evaluating '_$$_REQUIRE(_dependencyMap[21], "@gorhom/bottom-sheet").BottomSheetModalProvider')
szydlovsky commented 5 months ago

@akylbek-hostaways one more thing that sparks to mind - have you tried bumping bottom sheet package to the latest version (4.6.1) ?

akylbek-hostaways commented 5 months ago

@szydlovsky Yes, I tried with the alpha version as well, but I still get the same error.

jenny-chiang commented 5 months ago

@szydlovsky I use react-native-reanimated 3.6.2 and it run. Clearing cache and reinstalling didn't solve my problem.

Geenesh03 commented 5 months ago

@jenny-chiang Can you check the global version of the react-native-reanimated, using npm list -g this will list the version of react-native-reanimated installed globally. Remove it and try re-installing the required version.

jenny-chiang commented 5 months ago

@Geenesh03 I have not installed react-native-reanimated in the global. I only installed in my project.

szydlovsky commented 5 months ago

Hey guys, I am still trying to find a repro. I created a sample repo with @gorhom/bottom-sheet, react-native-reanimated and react-native-gesture-handler: https://github.com/szydlovsky/reaniamtedHostFunctionCrashRepro

Its package.json is:

{
  "name": "reaniamtedHostFunctionCrashRepro",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "android": "react-native run-android",
    "ios": "react-native run-ios",
    "lint": "eslint .",
    "start": "react-native start",
    "test": "jest"
  },
  "dependencies": {
    "@gorhom/bottom-sheet": "^4.6.1",
    "react": "18.2.0",
    "react-native": "0.74.1",
    "react-native-gesture-handler": "^2.16.2",
    "react-native-reanimated": "^3.11.0"
  },
  "devDependencies": {
    "@babel/core": "^7.20.0",
    "@babel/preset-env": "^7.20.0",
    "@babel/runtime": "^7.20.0",
    "@react-native/babel-preset": "0.74.83",
    "@react-native/eslint-config": "0.74.83",
    "@react-native/metro-config": "0.74.83",
    "@react-native/typescript-config": "0.74.83",
    "@types/react": "^18.2.6",
    "@types/react-test-renderer": "^18.0.0",
    "babel-jest": "^29.6.3",
    "eslint": "^8.19.0",
    "jest": "^29.6.3",
    "prettier": "2.8.8",
    "react-test-renderer": "18.2.0",
    "typescript": "5.0.4"
  },
  "engines": {
    "node": ">=18"
  },
  "packageManager": "yarn@3.6.4"
}

And its babel.config.js is:

module.exports = {
  presets: ['module:@react-native/babel-preset'],
  plugins: ['react-native-reanimated/plugin'],
};

It contains some sample code using bottom-sheet. Can anyone clone it and see if the crash is still there? It works perfectly for me.

akylbek-hostaways commented 5 months ago

@szydlovsky Yes, your repository works well. This issue can be related to the JSC, because it started giving errors when hermesjs is disabled

https://github.com/akylbek-hostaways/repro-animated

AlekseyPim commented 5 months ago

@szydlovsky works fine. Interesting that for my repo everything worked fine till yesterday

szydlovsky commented 4 months ago

@akylbek-hostaways alright, your repro throws - time to investigate

szydlovsky commented 4 months ago

@akylbek-hostaways I've done some digging and found out that our repros mostly differ by react-native versions - your uses 0.73.8 and it doesn't work - my uses 0.74.1. I suggest you try bumping it up

szydlovsky commented 4 months ago

Here's some reference how to do it: https://reactnative.dev/docs/upgrading

szydlovsky commented 4 months ago

Also this: https://react-native-community.github.io/upgrade-helper/

jordmccord commented 4 months ago

Same issue on android RN version 73.6 and 3.11.0 reanimated

bear-ei commented 4 months ago

@akylbek-hostaways I've done some digging and found out that our repros mostly differ by react-native versions - your uses 0.73.8 and it doesn't work - my uses 0.74.1. I suggest you try bumping it up

Is there a way to solve this issue in 0.73.*? I can't upgrade to version 0.74.0 due to some compatibility reasons for now.

mahipalsingh-syt commented 4 months ago

any update on this ? facing same issue.

FaggioniHQ commented 4 months ago

Hello,

Any workaround for this?

Thanks in advance :)

PrinceD96 commented 4 months ago

Until a fix is provided, you have 2 options:

  1. Upgrade to react-native v074.1 (can use latest react-native-reanimated)
  2. Downgrade to react-native-reanimated v3.6.1 (works with react-native v73)
avtarvikas commented 4 months ago

I faced the same issue while using bottom sheet, it got fixed by making these changes in the version

"@gorhom/bottom-sheet": "^4.6.1", "react-native": "0.73.1", "react-native-gesture-handler": "^2.16.2", "react-native-reanimated": "3.6.1",

i am using node - 21.7.3 @PrinceD96 good workaround

tarakagilefoways commented 4 months ago
  1. Downgrade to react-native-reanimated v3.6.1 by removing ^ in package.json
  2. Install node_modules again,
  3. reset cache of metro server.

*_the only workaround until you decide to upgrade project latest 74. + version._**

RohitDianApps commented 4 months ago

I faced the same issue while using reanimated

"react-native": "0.72.1", "react-native-reanimated": "^3.4.2",

Anyone find fix around?

akylbek-hostaways commented 4 months ago

Another workaround for versions below 0.74 is enabling hermesjs

zanotta commented 4 months ago

switching to "react-native-reanimated": "3.6.1" worked for me.

RohitDianApps commented 4 months ago

switching to "react-native-reanimated": "3.6.1" worked for me.

yes now working

kiwavi commented 3 months ago

I fixed this error by observing the compatibility table and ensuring the reanimated version is compatible with the react native version.

More inside https://docs.swmansion.com/react-native-reanimated/docs/guides/compatibility/

PrinceD96 commented 3 months ago

I fixed this error by observing the compatibility table and ensuring the reanimated version is compatible with the react native version.

More inside docs.swmansion.com/react-native-reanimated/docs/guides/compatibility

If you read the OP's message, you'll see he's using 2 versions that should be compatible according to the compatibility table. RN v.73 and reanimated 3.8.1

Screenshot 2024-06-08 at 2 45 13 PM
kiwavi commented 3 months ago

I fixed this error by observing the compatibility table and ensuring the reanimated version is compatible with the react native version. More inside docs.swmansion.com/react-native-reanimated/docs/guides/compatibility

If you read the OP's message, you'll see he's using 2 versions that should be compatible according to the compatibility table. RN v.73 and reanimated 3.8.1

Screenshot 2024-06-08 at 2 45 13 PM

Sorry I didn't notice that. But it might be helpful for others who maybe aren't using compatible versions.