React native:未找到Android项目。也许首先运行react-native android?

时间:2017-05-01 18:01:54

标签: react-native-android

我在React-Native项目中遇到了一个问题,该项目之前工作正常,但突然间它停止了工作。每当我使用命令时:

react-native run-android

我收到错误

  

未找到Android项目。也许首先运行react-native android?

尝试正在运行:

react-native android

但它说:

  

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

尝试后:

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

返回的错误是:

  

扫描符号链接的文件夹   D:\ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules(48ms)   必须在name配置文件中定义应用app.json才能定义   项目名。它不得包含任何空格或短划线。

这是app.json文件:

{
  "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": [
      "**/*"
    ]
  }
}

38 个答案:

答案 0 :(得分:134)

我提出了这个问题并回答了自己,因为我认为它会帮助那些面临类似问题的人。我努力寻找其背后的真正原因,因为终端中显示的错误不准确。

要解决此问题,请升级react-native软件包。

  1. 转到项目根目录
  2. 输入以下命令升级命令提示符中的React本机程序包:

    react-native upgrade

  3. 然后通过在命令提示符中键入y (Yes)来接受更新所有文件。
  4. 参考:https://github.com/facebook/react-native/issues/9312

答案 1 :(得分:22)

打开您的React Native Project根目录并找到android-> app-> build->中间体-> signing_config-> debug-> out-> signing-config.json。 删除此文件的signing-config.json 再试一次

1)有时候,如果我们使用的是较早版本的react native,并且某些新安装的软件包不支持较旧的版本。然后,您必须使用react-native upgrade命令更新react native项目。

  1. 将当前项目更新为新版本后,该错误应得到解决。

答案 2 :(得分:19)

我知道这是一个古老的问题但是这些解决方案中的任何一个对我都不起作用,也许还有像我这样的人。我在 var UserSchema = new Schema({ id: String, id_google: String, type: String, name: String, email: String, timestamp: { type: Date, default: Date.now }, pic_url: String });

之前解决了运行此命令的问题
run-android

答案 3 :(得分:7)

我确实喜欢这个......工作!!

  1. 在CMD项目根目录中运行 react-native upgrade
  2. 如果您仍然遇到问题,确保您有 react-native 在package.json 中的依赖项json中,如果不是
  3. 则添加它
  4. 如果您仍然遇到问题,请使用 react-native -v 获取cmd中的react native版本,并检查cmd和package.json中返回的值是否相同。使用cmd
  5. 中返回的值更新package.json

    我的问题解决了。

答案 4 :(得分:6)

以管理员身份打开命令提示符并转到项目文件夹,运行android(npx react-native run-android)

答案 5 :(得分:5)

在最新版本的react-native中,当您尝试发出命令时,会出现此建议:

react-native eject
  

扫描文件夹中的符号链接   D:\ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules(48ms)   必须在name配置文件中定义应用app.json,才能定义   项目名。它不能包含任何空格或破折号。

现在,当您发出以下命令时:

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

出现以下内容:

  

扫描文件夹中的符号链接   D:\ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules(56ms)   您应该考虑使用基于Git的新升级工具。它使   通过自动解决大多数冲突,可以轻松升级。要使用它:   -返回旧版本的React Native   -运行“ npm install -g react-native-git-upgrade”   -运行“ react-native-git-upgrade”,请参见https://facebook.github.io/react-native/docs/upgrading.html   “ package.json”中的react-native版本与安装的版本不匹配   “ node_modules”中的版本。尝试运行“ npm install”来解决此问题。   正在中止。

在Facebook react-native命令建议中,有一个明确的解决方案。

这些命令检查当前版本以及是否需要更新。

另请参阅:

Solution to "Expo : cannot find a module LogReporter"

答案 6 :(得分:3)

我们遇到此问题,因为来自 android 文件夹 gradlew gradlew.bat 的文件(分别为UN * X,Windows的Gradle启动脚本)以某种方式进入全球.gitignore文件,因此没有在本地环境中呈现。

实际运行 react-native upgrade 命令还原这些文件,从而解决问题。

答案 7 :(得分:2)

我今天遇到了这个问题,没有一种解决方案适合我,所以我找到了另一个解决方案。

格式错误的AndroidManifest.xml会导致此问题,也许您今天像我一样设置了启动屏幕,但未以正确的方式格式化AndroidManifest

答案 8 :(得分:2)

删除文件:React Native Project根目录并找到android-> app-> build->中间物-> signing_config-> debug-> out-> signing-config.json。

答案 9 :(得分:1)

打开您的React Native Project根目录并找到android-> app-> build->中间体-> signing_config->调试-> out-> signing-config.json

删除文件,然后重试。

答案 10 :(得分:1)

就我而言,我没有对我的项目文件夹的正确权限。

如果是这种情况,只需在文件夹>属性>安全性>高级上单击右键,然后将文件夹的所有权更改为用户(包括子文件夹)的所有权。应该这样做

答案 11 :(得分:1)

我认为您可以检查的另一件事是,如果您以前以用户的不同角色运行该项目,例如在Windows中,如果您先前以管理员角色运行了react-native run-android。

答案 12 :(得分:1)

就我而言,我忘记添加Sudo。固定如下,

sudo npx react-native run-android

答案 13 :(得分:1)

对我来说,“ rm -rf android / app / build /”有效

答案 14 :(得分:1)

您必须使用管理员权限运行cmd。那为我解决了同样的问题。 没有做“弹出”或其他任何事情。

答案 15 :(得分:1)

我正在使用Android Studio(非博览会),这对我有效

react-native init <your-project-name>

答案 16 :(得分:1)

在Windows中以管理员身份运行Terminal可以解决我的问题……其他解决方案无效。

答案 17 :(得分:1)

作为补充,如果未找到react-native命令,则应安装react-native CLI:

npm install -g react-native-cli

然后您可以按照上述人员的步骤进行操作。

更多详细信息:react-native: command not found

答案 18 :(得分:0)

我通过杀死java.exe的所有实例来解决了这个问题: taskkill /f /im java.exe

答案 19 :(得分:0)

所以如果有人在这里遇到这个问题,什么对我有用,

{
   "name": "ZedMusic",
   "displayName": "zedmusic",
   "expo": {}
}

项目名称必须在expo之外,然后运行npx react-native eject

答案 20 :(得分:0)

对我来说,这是停止不允许构建或清洁的 Firebase 功能服务的问题。因此,您可以检查项目目录中是否没有您正在运行的服务

答案 21 :(得分:0)

此错误可能发生在为您的项目生成 .apk 之后,或者当您处于开发阶段时,请转到 react-native 应用程序根目录中的 android 文件夹,然后检查以下两个路径删除signing-config.json文件

1-

android -> app -> build -> intermediates -> signing_config -> debug -> out -> signing-config.json

2-

android -> app -> build -> intermediates -> signing_config -> release -> out -> signing-config.json

答案 22 :(得分:0)

管理员的身份打开项目。

react-native run-android

注意:确保你安装了 react-native cli。

要在 Windows 上安装 react-native cli,请运行。

npm install -g react-native-cli

答案 23 :(得分:0)

就我而言,我不小心删除了 AndroidManifest.xml 文件夹中的 android/app/src/main

答案 24 :(得分:0)

在 Windows 上,我的问题是由使用 mklink 创建指向另一个代码文件夹的符号链接引起的。

我有: ProjectDir/common -> ../commonCode

Windows 要求您在管理员模式下使用 mklink,所以我这样做了。在那之后,即使在管理 npx react-native run-android 终端中运行,我也无法再运行 cmd 而不会出现此错误。

我的解决方案是删除 mklink 创建的符号链接并在 git bash 终端中使用 ln -s ../commonCode common。由于 Windows 处理符号链接的方式,这并不理想,但让我重新构建。

否则,我曾尝试过:

  • 删除所有 ./android/build 和 ./android/app/build(没有帮助)
  • npx react-native run-android 运行 cmd(无效)
  • 清理并重新安装 node_modules(无效)
  • 仔细检查 AndroidManifest.xml 是否存在语法错误(没有)
  • npx react-native eject(eject 不再是命令)

答案 25 :(得分:0)

此错误仅表示您在项目的根目录中没有“ android”和“ ios”文件夹。他们的位置很重要。

解决方案:-

打开项目文件夹,搜索“ android”和iso“ folder”,将这些文件夹移动到项目的根文件夹中,然后使用react-native run-android启动项目

enter image description here

答案 26 :(得分:0)

我必须重新设置AndroidManifest.xml的样式,因为我在某处出现语法错误(我在某处有一个额外的“ /”)。现在已修复。语法要非常小心...

答案 27 :(得分:0)

删除本机android build folder,然后重试命令npx react-native run-android

答案 28 :(得分:0)

我的工作解决方案在下面,以上都不对我有用:

将CD插入项目文件夹,然后键入expo start --android。

或者很长的路要走

  1. 在Android Studio中打开AVD管理器并运行虚拟设备(您可以 然后关闭AS)
  2. 将CMD插入项目文件夹,然后输入“ expo start”
  3. 世博会一旦开始,请选择选项2,即“按Android 模拟器”

它将在虚拟设备上安装expo,您可以从那里进行测试

答案 29 :(得分:0)

删除 signing-config.json ,然后重试 react-native run-android

signing-config.json文件路径:android-> app-> build->中间体-> signing_config->调试-> out-> signing-config.json

答案 30 :(得分:0)

我运行react-native eject时遇到此错误:

Both the iOS and Android folders already exist! Please delete `ios` and/or `android` before ejecting.
  • 删除MyProject/android文件夹。
  • 运行react-native eject会生成android文件夹

  • 然后运行react-native run-android来构建android

答案 31 :(得分:0)

您应该考虑使用基于Git的新升级工具。通过自动解决大多数冲突,使升级变得更加容易。 要使用它: -返回旧版本的React Native -运行“ npm install -g react-native-git-upgrade” -运行“ react-native-git-upgrade” 参见https://facebook.github.io/react-native/docs/upgrading.html

答案 32 :(得分:0)

我在一个项目(使用React Native CLI创建)中遇到了相同的错误:

enter image description here

原来我的android清单文件(android / app / src / main / AndroidManifest.xml)中存在语法错误。

答案 33 :(得分:0)

如果您通过以下方式开始了项目

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

在此之后,您可以面对上述问题,因此解决方案是:

npm run eject

答案 34 :(得分:0)

在这里,app.json没有名称,但是具有与expo相关的配置。 因此,只需在app.json中添加名称和显示名称字段。

app.json(前两行):

{
"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": [
      "**/*"
    ]
  }
}

之后,只需运行:

$ react-native弹出

info正在生成iOS文件夹。

info正在生成Android文件夹。

无需进行本机升级。

答案 35 :(得分:0)

如果使用expo之类的expo init projectname命令创建了项目,则随后必须弹出项目:

expo eject

如果您通过react-native init projectName创建了项目,则必须使用

react-native eject

答案 36 :(得分:0)

可能为时已晚,我从备份文件中替换了Android文件夹。它对我有用。

答案 37 :(得分:-1)

确保您没有在 AndroidManifest.xml 中注释任何内容。