expo / expo

An open-source framework for making universal native apps with React. Expo runs on Android, iOS, and the web.
https://docs.expo.dev
MIT License
33.25k stars 5.31k forks source link

Expo 51 Android build failed using Dev-Client #31308

Closed hamedfoodready closed 1 month ago

hamedfoodready commented 1 month ago

Summary

I have used Expo-dev client and use cloud build. after updating expo 50 -> 51 I faced with the below error. I dont know how to resolve that.

Managed or bare workflow?

managed

What platform(s) does this occur on?

Android

Package versions

"react-dom": "18.2.0", "react-hook-form": "^7.43.9", "react-native": "0.74.4", "expo": "^51.0.31",

Environment

expo-env-info 1.2.0 environment info: System: OS: macOS 14.6.1 Shell: 5.9 - /bin/zsh Binaries: Node: 20.5.1 - ~/.nvm/versions/node/v20.5.1/bin/node Yarn: 3.6.4 - /opt/homebrew/bin/yarn npm: 9.8.0 - ~/.nvm/versions/node/v20.5.1/bin/npm Watchman: 2023.12.04.00 - /opt/homebrew/bin/watchman Managers: CocoaPods: 1.12.1 - /Users/hamedtaheri/.rbenv/shims/pod SDKs: iOS SDK: Platforms: DriverKit 23.5, iOS 17.5, macOS 14.5, tvOS 17.5, visionOS 1.2, watchOS 10.5 IDEs: Android Studio: 2023.1 AI-231.9392.1.2311.11255304 Xcode: 15.4/15F31d - /usr/bin/xcodebuild npmPackages: babel-preset-expo: ~11.0.0 => 11.0.14 expo: ^51.0.31 => 51.0.31 react: 18.2.0 => 18.2.0 react-dom: 18.2.0 => 18.2.0 react-native: 0.74.4 => 0.74.4 react-native-web: ~0.19.6 => 0.19.12 npmGlobalPackages: eas-cli: 11.0.3 Expo Workflow: managed

Reproducible demo

Screenshot 2024-09-03 at 6 12 32 AM

Stacktrace (if a crash is involved)

No response

expo-bot commented 1 month ago

Hi there! It looks like your issue requires a minimal reproducible example, but it is invalid or absent. Please prepare such an example and share it in a new issue.

The best way to get attention to your issue is to provide a clean and easy way for a developer to reproduce the issue on their own machine. Please do not provide your entire project, or a project with more code than is necessary to reproduce the issue.

A side benefit of going through the process of narrowing down the minimal amount of code needed to reproduce the issue is that you may get lucky and discover that the bug is due to a mistake in your application code that you can quickly fix on your own.

Resources

Kudo commented 1 month ago

hi there! could you share your build id, e.g. https://expo.dev/accounts/XXX/projects/XXX/builds/ee1bcee0-4c75-437c-b6ad-6570c1391e5f, the ee1bcee0-4c75-437c-b6ad-6570c1391e5f is the build id. if you build locally, please try to run npx expo prebuild --clean before building. thanks

hamedfoodready commented 1 month ago

hi there! could you share your build id, e.g. https://expo.dev/accounts/XXX/projects/XXX/builds/ee1bcee0-4c75-437c-b6ad-6570c1391e5f, the ee1bcee0-4c75-437c-b6ad-6570c1391e5f is the build id. if you build locally, please try to run npx expo prebuild --clean before building. thanks

a5557582-3466-4e82-874f-7e6bcd64fdbf

Kudo commented 1 month ago

@hamedfoodready thanks for sharing. could you help to investigate if you have react-native 0.74 & 0.75 co-existing in your project? the error In plugin 'com.facebook.react' type 'com.facebook.react.tasks.GeneratePackageListTask' property 'autolinkInputFile' specifies file '/home/expo/workingdir/build/android/build/generated/autolinking/autolinking.json' which doesn't exist. is more toward the gradle-plugin in react-native 0.75.

you have the interesting log in your yarn installation.

➤ YN0002: │ react-native@npm:0.74.4 [1eb24] doesn't provide @babel/preset-env (pd0fa9), requested by @react-native/codegen
➤ YN0002: │ react-native@npm:0.75.2 [744f5] doesn't provide @babel/preset-env (pfb02c), requested by @react-native/codegen

would be good if you can help to investigate your react-native version a little bit.

hamedfoodready commented 1 month ago

@hamedfoodready thanks for sharing. could you help to investigate if you have react-native 0.74 & 0.75 co-existing in your project? the error In plugin 'com.facebook.react' type 'com.facebook.react.tasks.GeneratePackageListTask' property 'autolinkInputFile' specifies file '/home/expo/workingdir/build/android/build/generated/autolinking/autolinking.json' which doesn't exist. is more toward the gradle-plugin in react-native 0.75.

you have the interesting log in your yarn installation.

➤ YN0002: │ react-native@npm:0.74.4 [1eb24] doesn't provide @babel/preset-env (pd0fa9), requested by @react-native/codegen
➤ YN0002: │ react-native@npm:0.75.2 [744f5] doesn't provide @babel/preset-env (pfb02c), requested by @react-native/codegen

would be good if you can help to investigate your react-native version a little bit.

Does it helpful ?

"dependencies": { "@config-plugins/react-native-ble-plx": "^5.0.0", "@expo/react-native-action-sheet": "^3.9.0", "@expo/vector-icons": "^14.0.2", "@gorhom/bottom-sheet": "^4", "@hookform/devtools": "^4.3.1", "@react-native-async-storage/async-storage": "1.23.1", "@react-native-clipboard/clipboard": "^1.13.2", "@react-native-community/cli-debugger-ui": "^9.0.0", "@react-native-community/datetimepicker": "8.0.1", "@react-native-community/netinfo": "11.3.1", "@react-native-community/slider": "4.5.2", "@react-native-firebase/analytics": "^17.3.2", "@react-native-firebase/app": "^17.3.2", "@react-native-firebase/auth": "^17.3.2", "@react-native-firebase/database": "^17.3.2", "@react-native-masked-view/masked-view": "0.3.1", "@react-navigation/bottom-tabs": "^6.0.5", "@react-navigation/elements": "^1.1.0", "@react-navigation/native": "^6.0.2", "@react-navigation/stack": "^6.0.7", "@realm/react": "^0.5.0", "@sentry/react-native": "~5.22.0", "@shopify/flash-list": "^1.6.3", "app-upgrade-react-native-sdk": "^1.0.6", "axios": "^1.7.4", "axios-better-stacktrace": "^2.1.6", "buffer": "^6.0.3", "crypto": "^1.0.1", "date-fns": "^2.13.0", "deprecated-react-native-prop-types": "^4.0.0", "expo": "^51.0.31", "expo-apple-authentication": "~6.4.2", "expo-application": "~5.9.1", "expo-auth-session": "~5.5.2", "expo-background-fetch": "~12.0.1", "expo-build-properties": "~0.12.5", "expo-camera": "~15.0.15", "expo-constants": "~16.0.2", "expo-crypto": "~13.0.2", "expo-dev-client": "~4.0.25", "expo-device": "~6.0.2", "expo-document-picker": "~12.0.2", "expo-file-system": "~17.0.1", "expo-font": "~12.0.9", "expo-gl": "~14.0.2", "expo-image-loader": "~4.7.0", "expo-image-manipulator": "~12.0.5", "expo-image-picker": "~15.0.7", "expo-linear-gradient": "~13.0.2", "expo-linking": "~6.3.1", "expo-localization": "~15.0.3", "expo-media-library": "~16.0.4", "expo-modules-core": "latest", "expo-notifications": "~0.28.16", "expo-ota-manager": "^1.1.4", "expo-splash-screen": "~0.27.5", "expo-status-bar": "~1.12.1", "expo-task-manager": "~11.8.2", "expo-updates": "~0.25.24", "expo-web-browser": "~13.0.3", "fuse.js": "^6.4.6", "i18n-js": "^3.9.2", "inversify": "^5.0.5", "jetifier": "^2.0.0", "json-prune": "^1.1.0", "jsx-to-string": "^1.4.0", "lodash.debounce": "^4.0.8", "mobx": "6.10.2", "mobx-persist-store": "^1.1.3", "mobx-react-lite": "^2.0.7", "patch-package": "^6.4.7", "postinstall-postinstall": "^2.1.0", "ramda": "^0.29.0", "react": "18.2.0", "react-content-loader": "^6.2.1", "react-dom": "18.2.0", "react-hook-form": "^7.43.9", "react-native": "0.74.4", "react-native-app-intro-slider": "^4.0.4", "react-native-background-actions": "^3.0.1", "react-native-ble-plx": "^2.0.3", "react-native-blob-util": "^0.16.0", "react-native-bluetooth-state-manager": "^1.3.5", "react-native-chart-kit": "^6.12.0", "react-native-dropdown-picker": "5.1.23", "react-native-error-boundary": "^1.1.12", "react-native-gesture-handler": "~2.16.1", "react-native-htmlview": "^0.17.0", "react-native-mime-types": "^2.3.0", "react-native-mmkv": "^2.11.0", "react-native-modal-datetime-picker": "^14.0.1", "react-native-modalize": "^2.0.12", "react-native-paper": "^5.11.6", "react-native-pdf": "^6.5.0", "react-native-picker-select": "^8.0.4", "react-native-reanimated": "~3.10.1", "react-native-safe-area-context": "4.10.5", "react-native-scanner-zebra-enhanced": "^2.0.4", "react-native-screens": "3.31.1", "react-native-signature-canvas": "^4.4.1", "react-native-status-bar-height": "^2.6.0", "react-native-step-indicator": "^1.0.3", "react-native-svg": "15.2.0", "react-native-table-component": "^1.2.2", "react-native-web": "~0.19.6", "react-native-webview": "13.8.6", "react-select": "^3.1.0", "realm": "^11.10.1", "recompose": "^0.30.0", "reflect-metadata": "^0.1.13", "to-json-schema": "^0.2.5" }, "devDependencies": { "@babel/core": "^7.21.0", "@babel/plugin-proposal-decorators": "^7.18.10", "@google-cloud/translate": "^8.3.0", "@react-native/gradle-plugin": "0.75.1", "@storybook/addon-actions": "^6.5.16", "@storybook/addon-controls": "^6.5.16", "@storybook/addon-ondevice-actions": "^6.5.3", "@storybook/addon-ondevice-controls": "^6.5.3", "@storybook/addon-ondevice-notes": "^6.5.3", "@storybook/react-native": "^6.5.3", "@testing-library/jest-native": "^5.4.3", "@testing-library/react-native": "^12.5.2", "@types/jest": "^29.5.12", "@types/react": "^18.2.55", "@typescript-eslint/eslint-plugin": "^6.7.5", "@typescript-eslint/parser": "6.7.5", "babel-jest": "~25.2.6", "babel-loader": "^8.3.0", "babel-plugin-module-resolver": "^4.0.0", "babel-preset-expo": "~11.0.0", "cli-progress": "^3.12.0", "edit-json-file": "^1.7.0", "eslint": "^8.51.0", "eslint-config-universe": "^12.0.0", "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-import": "^2.28.1", "eslint-plugin-prettier": "^5.0.1", "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-native": "^4.1.0", "eslint-plugin-testing-library": "^6.2.2", "filehound": "^1.17.6", "fs": "^0.0.1-security", "glob": "^10.3.16", "husky": "^4.3.8", "jest": "^29.3.1", "jest-expo": "~51.0.4", "lint-staged": "^11.1.2", "path": "^0.12.7", "prettier": "^3.0.3", "react-native-flagsmith": "^3.24.0", "react-native-svg-transformer": "^1.0.0", "react-test-renderer": "^18.2.0", "semver": "^7.6.0", "typescript": "~5.3.3", "yargs": "^17.7.2" },

Kudo commented 1 month ago

@hamedfoodready also seen this in your package.json

  "resolutions": {
    "@react-native/gradle-plugin": "0.75.1"
  },

any particular reason to use RNGP 0.75.1?

hamedfoodready commented 1 month ago

@hamedfoodready also seen this in your package.json

  "resolutions": {
    "@react-native/gradle-plugin": "0.75.1"
  },

any particular reason to use RNGP 0.75.1?

Yes i had this issue:

Task :gradle-plugin:settings-plugin:jar FAILURE: Build failed with an exception.

  • What went wrong: Included build /home/expo/workingdir/build/node_modules/react-native/node_modules/@react-native/gradle-plugin has build path :gradle-plugin which is the same as included build /home/expo/workingdir/build/node_modules/@react-native/gradle-plugin

so with that i solved multiple paths for @react-native/gradle-plugin

Kudo commented 1 month ago

@hamedfoodready figured out that react-native 0.75 is coming from @realm/react which has a optionalDependencies.

$ yarn why react-native
├─ @realm/react@npm:0.5.2
│  └─ react-native@npm:0.75.2 (via npm:>=0.68)
│
├─ @realm/react@npm:0.5.2 [1eb24]
│  └─ react-native@npm:0.75.2 [744f5] (via npm:>=0.68 [744f5])
│

rather than using resolutions to pin down RNGP version, you may need to pin down react-native version instead:

  "resolutions": {
    "react-native": "0.74.4"
  },

also please remove RNGP from your devDependencies.