TypeError: undefined is not an object (evaluating 'NativeUnimoduleProxy.viewManagersNames.includes')

Please provide the following:

  1. SDK Version: 45
  2. Platforms(Android/iOS/web/all): all
  3. Add the appropriate “Tag” based on what Expo library you have a question on. NativeUnimoduleProxy.viewManagersNames.includes

I upgraded the app from sdk 41 to 45 and it throws me the below error when running the app.

TypeError: undefined is not an object (evaluating ‘NativeUnimoduleProxy.viewManagersNames.includes’)
at node_modules\expo\build\environment\react-native-logs.fx.js:27:4 in error
at node_modules\react-native\Libraries\Core\ExceptionsManager.js:95:4 in reportException
at node_modules\react-native\Libraries\Core\ExceptionsManager.js:141:19 in handleException
at node_modules\react-native\Libraries\Core\setUpErrorHandling.js:24:6 in handleError
at node_modules@react-native\polyfills\error-guard.js:49:36 in ErrorUtils.reportFatalError
at node_modules\metro-runtime\src\polyfills\require.js:203:6 in guardedLoadModule
at http://192.168.0.25:19000/node_modules\expo\AppEntry.bundle?platform=android&dev=true&hot=false&strict=false&minify=false:277156:3 in global code

Hey @fx-rakesh, I would strongly recommend reverting back to a commit before you upgraded and upgrade SDK versions incrementally so you can better pinpoint when/what is causing errors/breakages. It’s important to read the upgrade steps for each SDK version (particularly the breaking changes/migrations)

1 Like

Hey @adamjnav! I’ve also been banging my head against the wall for 2 days with the same error, and I actually went from v44 to v45 :frowning: A LOT of imports are causing this issue, even standard expo modules that arent listed in the errors/breakages.

I have tried to remove node modules and re install everything, checked for duplicates in yarn.lock (for some modules that were breaking things) and also confirmed that react-native was upgraded to 0.68 too

Hi @uakhundz

First try running expo doctor and fixing any issues. If that doesn’t sort it out, please post your dependencies here.

@wodin


, I also have the same error and ran expo doctor, it says it didn’t find any issues with my project

Hi @mactavis

:point_up:

Also, while you’re at it, upgrade expo-cli. Yours is a little out of date.

I’ve got the same issue, also removed node_moduels folder and running the latest expo-cli version.

:point_up:

Having the same issue after upgrading from SDK 44 to SDK 45

  "dependencies": {
    "@apollo/client": "3.5.4",
    "@emotion/native": "^11.0.0",
    "@emotion/react": "^11.4.1",
    "@expo-google-fonts/assistant": "^0.2.0",
    "@expo/ngrok": "4.1.0",
    "@expo/vector-icons": "^13.0.0",
    "@gorhom/bottom-sheet": "^4.1.5",
    "@react-native-async-storage/async-storage": "~1.17.3",
    "@react-native-community/netinfo": "8.2.0",
    "@react-navigation/bottom-tabs": "^6.0.5",
    "@react-navigation/native": "^6.0.2",
    "@react-navigation/native-stack": "^6.1.0",
    "@react-spring/native": "^9.3.0",
    "dayjs": "^1.10.7",
    "expo": "^45.0.0",
    "expo-app-loading": "~2.0.0",
    "expo-asset": "~8.5.0",
    "expo-constants": "~13.1.1",
    "expo-firebase-analytics": "~7.0.0",
    "expo-font": "~10.1.0",
    "expo-linear-gradient": "~11.3.0",
    "expo-linking": "~3.1.0",
    "expo-localization": "~13.0.0",
    "expo-notifications": "~0.15.2",
    "expo-splash-screen": "~0.15.1",
    "expo-status-bar": "~1.3.0",
    "expo-updates": "~0.13.1",
    "expo-web-browser": "~10.2.0",
    "formik": "^2.2.9",
    "graphql": "^15.6.0",
    "i18n-js": "^3.8.0",
    "jsvat": "^2.5.3",
    "lint-staged": "^11.1.2",
    "lottie-react-native": "5.0.1",
    "react": "17.0.2",
    "react-dom": "17.0.2",
    "react-native": "0.68.2",
    "react-native-dotenv": "^3.2.0",
    "react-native-gesture-handler": "~2.2.1",
    "react-native-keyboard-aware-scroll-view": "^0.9.5",
    "react-native-pager-view": "5.4.15",
    "react-native-portalize": "^1.0.7",
    "react-native-raw-bottom-sheet": "^2.2.0",
    "react-native-reanimated": "~2.8.0",
    "react-native-render-html": "^6.1.0",
    "react-native-safe-area-context": "4.2.4",
    "react-native-screens": "~3.11.1",
    "react-native-skeleton-content": "^1.0.24",
    "react-native-svg": "12.3.0",
    "react-native-swiper": "^1.6.0",
    "react-native-tab-view": "^3.1.1",
    "react-native-uuid": "^2.0.1",
    "react-native-web": "0.17.7",
    "yup": "^0.32.9"
  },
  "devDependencies": {
    "@babel/core": "^7.12.9",
    "@expo/webpack-config": "~0.16.21",
    "@graphql-codegen/cli": "2.2.0",
    "@graphql-codegen/typescript": "2.2.2",
    "@graphql-codegen/typescript-operations": "2.1.4",
    "@graphql-codegen/typescript-react-apollo": "3.1.4",
    "@storybook/addon-actions": "^6.3.8",
    "@storybook/addon-docs": "^6.3.8",
    "@storybook/addon-essentials": "^6.3.8",
    "@storybook/addon-links": "^6.3.8",
    "@storybook/react": "^6.3.8",
    "@storybook/react-native": "^5.3.25",
    "@types/graphql": "^14.5.0",
    "@types/jest": "^27.0.1",
    "@types/react": "~17.0.21",
    "@types/react-native": "~0.67.6",
    "@types/react-native-dotenv": "^0.2.0",
    "@types/react-test-renderer": "^17.0.1",
    "@types/yup": "^0.29.13",
    "@typescript-eslint/eslint-plugin": "^4.31.1",
    "@typescript-eslint/parser": "^4.31.1",
    "babel-loader": "^8.2.2",
    "eas-cli": "^0.47.0",
    "eslint": "7.32.0",
    "eslint-config-airbnb": "18.2.1",
    "eslint-config-prettier": "^8.3.0",
    "eslint-plugin-import": "2.22.1",
    "eslint-plugin-jsx-a11y": "6.4.1",
    "eslint-plugin-prettier": "^4.0.0",
    "eslint-plugin-react": "7.21.5",
    "eslint-plugin-react-hooks": "1.7.0",
    "expo-cli": "^5.4.4",
    "jest-expo": "^45.0.0",
    "prettier": "^2.4.1",
    "react-test-renderer": "^17.0.2",
    "typescript": "~4.3.5"
  },

You probably don’t want this as a dependency. It should be fine as a devDependency.

Same with lint-staged. Pretty sure the same applies to react-native-dotenv.

I see you have expo-cli and eas-cli installed as devDependencies. That’s not necessarily wrong, but as far as I know it’s not usual.

I see you don’t have expo-dev-client installed. So are you building with eas build or expo build? Are you running the app in Expo Go or standalone? Which platform(s) are you seeing the error on? Android/iOS/Web?

EDIT:

It looks like the problem (at least in your case) is with react-native-skeleton-content. It looks like it has not been updated to use expo instead of react-native-unimodules so I don’t think it would work on Expo SDK 43 and later.

See the Expo SDK 43 release announcement
More info: What’s new in Expo modules infrastructure | by Brent Vatne | Exposition

How I found this:

% grep -rl viewManagersNames node_modules
node_modules/react-native-skeleton-content/node_modules/expo-modules-core/ios/NativeModulesProxy/EXNativeModulesProxy.m
node_modules/react-native-skeleton-content/node_modules/expo-modules-core/android/src/main/java/expo/modules/adapters/react/NativeModulesProxy.java
node_modules/react-native-skeleton-content/node_modules/expo-modules-core/build/NativeViewManagerAdapter.native.js.map
node_modules/react-native-skeleton-content/node_modules/expo-modules-core/build/NativeViewManagerAdapter.native.js
node_modules/react-native-skeleton-content/node_modules/expo-modules-core/src/NativeViewManagerAdapter.native.tsx

Also:

1 Like

Gonna look into this tomorrow and post an update - thanks a ton for the detailed answer and suggestions!

UPDATE:
Just could not resist to try it out immediately and indeed react-native-skeleton-content ruined my morning today!
Works like a charm now - many thanks again!
Still a tiny bit strange since I already had it running on sdk 44 (also build for android and ios) and everything worked just fine.

1 Like