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


88

我在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中的符号链接(48毫秒)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": [
      "**/*"
    ]
  }
}

1
如果root指令中缺少android文件夹,请运行react-native弹出。
库尔希德·安萨里

1
@Khurshid Ansari您的解决方案无效,因为错误即将出现:“即使定义了名称,也必须在app.json配置文件中定义应用程序名称才能定义项目名称”。请参阅更新的问题。
Abhinav Saxena '18 -10-22

Answers:


155

我提出了这个问题,并回答了自己,因为我认为这将帮助其他面临类似问题的人。由于终端中显示的错误不准确,我很难找到它的真正原因。

要解决此问题,请升级本机包。

  1. 转到项目根目录

  2. 通过输入以下命令来升级命令提示符中的React本机包:

    react-native upgrade

  3. 然后接受通过键入更新所有文件y (Yes)命令提示符

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


9
保存了一天:)
穆罕默德

React本机包在哪里找到?请明确的步骤
Lutaaya Huzaifah伊德里斯

@LutaayaHuzaifahIdris如答案中所述,可以在Project根目录上升级react native软件包。因此,打开命令提示符并转到项目根目录。然后升级react native软件包。
乌代

它是我不想要的升级的本机。
Khurshid Ansari '18

我的工作解决方案如下,上述任何一项对我都不起作用:1.在Android Studio中打开AVD管理器并运行虚拟设备(您之后可以关闭AS)2.在您的项目文件夹中输入CMD并键入“ expo start” 3。博览会开始后,选择选项2“为Android模拟器按一个”,它将在虚拟设备上安装博览会,您可以从那里进行测试
Paul Gwamanda

23

我知道这是一个老问题,但是这些解决方案中的任何一个都不适合我,也许还有其他像我这样的解决方案。我之前解决了运行此命令的问题run-android

react-native eject

1
由于某种原因,这也对我有用。我在运行“ react-native upgrade”时尝试使用“ react-native-git-upgrade”更新版本的react native升级,但它对我不起作用。
Zaid Qureshi

2
此命令在您的项目中重新创建android和ios文件夹
Khurshid Ansari '18

1
我认为这是正确的答案。不仅因为它对我有用,而且因为根据我对文档的理解,这是执行此操作的预期方式,因此没有其他副作用。
大安

8
eject命令已被删除react-native
幻影沃森

16

打开您的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. 将当前项目更新为新版本后,该错误应解决。

9

确保使用命令(非expo)启动项目:

react-native init <your-project-name>

如果存在文件夹,请按照下列步骤操作:

反应性喷射


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

react-native eject

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

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

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

显示如下:

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

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

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

另一种解决方案:

react-native:run-android无法识别的命令。可能是因为npm install

另请参阅:

解决“ Expo:找不到模块LogReporter”的解决方案


已接受我的答复,+ 10代表。到@Abhinav
赛义德

8

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

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

在这里我的问题解决了。


5

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


3

我们遇到这个问题是因为android文件夹gradlewgradlew.bat(分别是UN * X和Windows的Gradle启动脚本)中的文件以某种方式进入了全局.gitignore文件,因此不在本地环境中显示。

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


3

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

npm install -g react-native-cli

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

更多详细信息:react-native:未找到命令


2

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

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

之后,您可以面对上面提到的问题,因此解决方案是:

npm run eject

2

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

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


1

在这里,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弹出

信息生成iOS文件夹。

信息生成Android文件夹。

无需进行本机升级。


实际上,“展览会弹出”效果也更好。它给了我选项并更新了app.json并创建了android / ios目录。
hp2017

1

删除文件:React Native Project Root Directory并找到android-> app-> build->中间体-> signing_config-> debug-> out-> signing-config.json。


1

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


这只是说说要感谢karthik mano的现有答案,不是吗?如果不是,请更清楚地说明此答案还提供了哪些其他见解。
Yunnosch

1

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

react-native init <your-project-name>

1

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


对于同一问题有很多类似的答案。如果您现有的答案有所帮助,则可以添加现有的答案,而不必添加答案。
迪帕克·特尔斯



0

我的工作方案如下,以上都不对我有用:

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

还是很长的路要走:

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

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


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






0

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

在此处输入图片说明

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


0

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

sudo npx react-native run-android

0

删除signing-config.json然后再试一次react-native run-android

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


0

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


0

删除react native androidbuild folder然后重试命令npx react-native run-android

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.