React native: Android project not found. Maybe run react-native android first?

拜拜、爱过 提交于 2019-12-18 10:10:28

问题


I had an issue in my React-Native project which was working fine earlier but suddenly it stopped working. Whenever I used the command:

react-native run-android

I was getting an error:

Android project not found. Maybe run react-native android first?

I tried running:

react-native android

But it said:

Unrecognized command 'android' Run react-native --help to see list of all available commands

After trying:

D:\ProjectRoot\ReactNativeProjects\AwesomeProject>react-native eject

The error returned was:

Scanning folders for symlinks in D:\ProjectRoot\ReactNativeProjects\AwesomeProject\node_modules (48ms) App name must be defined in the app.json config file to define the project name. It must not contain any spaces or dashes.

This is the app.json file:

{
  "expo": {
    "name": "AwesomeProject",
    "description": "A very interesting project.",
    "slug": "AwesomeProject",
    "privacy": "public",
    "sdkVersion": "30.0.0",
    "platforms": ["ios", "android"],
    "ios": {
      "supportsTablet": true
    },
    "android": {
      "package": "com.project.first"
    },
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/images/icon.png",
    "splash": {
      "image": "./assets/images/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "**/*"
    ]
  }
}

回答1:


I raised this question and answered myself as I thought it will help others who are facing similar issue. I struggled a lot to find out the real reason behind it as the error shown in terminal was not precise.

To resolve the issue please upgrade the react-native package.

  1. Go to the Project root.
  2. Upgrade the React native package in the Command Prompt by typing :

    react-native upgrade.

  3. Then Accept to update all the Files by typing y (Yes) in the Command Prompt.

Reference: https://github.com/facebook/react-native/issues/9312




回答2:


I know it is an old question but any of those solutions did not work for me and maybe there are others like me. I solved my problem running this command before run-android

react-native eject



回答3:


I did like this... Worked !!

  1. In the CMD Project root run react-native upgrade.
  2. if you are still getting issues, make sure you have react-native in dependencies json in package.json, add it if not
  3. if you are still getting issues, get the version of react native in cmd using react-native -v and check if the value returned in cmd and package.json are same. update the package.json with the value returned in cmd

Here my problem solved.




回答4:


In the latest version of react-native this suggestion comes when you try to issue the command:

react-native eject

Scanning folders for symlinks in D:\ProjectRoot\ReactNativeProjects\AwesomeProject\node_modules (48ms) App name must be defined in the app.json config file to define the project name. It must not contain any spaces or dashes.

Now when you issue the following command:

D:\ProjectRoot\ReactNativeProjects\AwesomeProject>react-native upgrade

The following shows up:

Scanning folders for symlinks in D:\ProjectRoot\ReactNativeProjects\AwesomeProject\node_modules (56ms) You should consider using the new upgrade tool based on Git. It makes upgrades easier by resolving most conflicts automatically. To use it: - Go back to the old version of React Native - Run "npm install -g react-native-git-upgrade" - Run "react-native-git-upgrade" See https://facebook.github.io/react-native/docs/upgrading.html react-native version in "package.json" doesn't match the installed version in "node_modules". Try running "npm install" to fix this. Aborting.

In the Facebook react-native commands suggestions, there is a clear solution.

These commands check the current version and whether there is update needed or not.

Please also see:

Solution to "Expo : cannot find a module LogReporter"




回答5:


We had this issue because files from android folder gradlew and gradlew.bat (Gradle startup script for the UN*X, Windows respectively) somehow got into the global .gitignore file, and so were not presented on local environments.

Actually running react-native upgrade command restore those files, thus fixing the problem.




回答6:


As a complement, in the case react-native command is not found, you should install react-native CLI:

npm install -g react-native-cli

Then you can follow the steps people said above.

More details: react-native: command not found




回答7:


My working solution is below, none of the above worked for me:

CD into your project folder and type expo start --android.

Or the long way:

  1. Open AVD manager in Android Studio and run a virtual device (you can close AS afterwards)
  2. CMD into your project folder and type 'expo start'
  3. Once Expo has started choose option 2 which is "Press a for Android emulator"

It will install expo on the virtual device and you can test from there




回答8:


When I ran react-native eject, I got this error:

Both the iOS and Android folders already exist! Please delete `ios` and/or `android` before ejecting.
  • Delete the MyProject/android folder.
  • Run react-native eject This generated the android folder

  • Then run react-native run-android to build android




回答9:


You should consider using the new upgrade tool based on Git. It makes upgrades easier by resolving most conflicts automatically. To use it: - Go back to the old version of React Native - Run "npm install -g react-native-git-upgrade" - Run "react-native-git-upgrade" See https://facebook.github.io/react-native/docs/upgrading.html




回答10:


If you started your project by following

npm install -g create-react-native-app
create-react-native-app MyReactNative
npm install -g react-native-cli
npm start

after this, you can face problem mention above in question So the solution is :

npm run eject



回答11:


Here, app.json does not have name, but it has expo related config. So just add name and display name fields in app.json.

app.json (first two lines) :

{
"name": "AwesomeProject",
"displayName": "Awesome Project",
"expo": {
    "name": "AwesomeProject",
    "description": "A very interesting project.",
    "slug": "AwesomeProject",
    "privacy": "public",
    "sdkVersion": "30.0.0",
    "platforms": ["ios", "android"],
    "ios": {
      "supportsTablet": true
    },
    "android": {
      "package": "com.project.first"
    },
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/images/icon.png",
    "splash": {
      "image": "./assets/images/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "**/*"
    ]
  }
}

After this, just run :

$ react-native eject

info Generating the iOS folder.

info Generating the Android folder.

No need to do react-native upgrade.



来源:https://stackoverflow.com/questions/43723958/react-native-android-project-not-found-maybe-run-react-native-android-first

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!