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

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

我在我的 React-Native 项目中遇到了一个问题,该项目之前运行良好,但突然停止运行。每当我使用命令时:

react-native run-android

我收到 错误:

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

试过运行:

react-native android

但是它说:

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

尝试后:

D:\ProjectRoot\ReactNativeProjects\AwesomeProject>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.

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

我提出了这个问题并自己回答了,因为我认为这会对面临类似问题的其他人有所帮助。由于终端中显示的错误不准确,我费了很大劲才找出背后的真正原因。

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

  1. 转到项目根目录

  2. 命令提示符中通过键入升级 React native 包:

    react-native upgrade.

  3. 然后在 命令提示符 .

    中键入 y (Yes) 以接受更新所有文件

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

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

实际上 运行 react-native upgrade 命令恢复那些文件,从而解决了问题。

我知道这是一个老问题,但这些解决方案中的任何一个都不适合我,也许还有像我这样的人。我在 run-android

之前解决了我的问题 运行 这个命令
react-native eject

我喜欢这个...成功了!!

  1. 在CMD项目根目录下运行react-native升级.
  2. 如果您仍然遇到问题,确保您有react-native 在package.json中的dependencies json中,如果没有就添加
  3. 如果您仍然遇到问题,请使用 react-native -v 在 cmd 中获取 react native 的版本,并检查 cmd 和 [=33 中返回的值是否=] 是一样的。使用 cmd
  4. 中返回的值更新 package.json

我的问题解决了。

作为补充,在没有找到react-native命令的情况下,你应该安装react-native CLI:

npm install -g react-native-cli

那你就按照上面人说的步骤就可以了

更多详情:

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

react-native init <your-project-name>

如果存在文件夹,则遵循:

react-native eject


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

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.

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

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

显示如下:

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.

在Facebook react-native commands suggestions中,有明确的解决方案。

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

还有一个解决方案:

react-native:无法识别命令 run-android。可能是由 npm install 引起的

另请参阅:

Solution to "Expo : cannot find a module LogReporter"

我的工作解决方案如下,上面的 none 对我有用:

CD 进入你的项目文件夹并输入 expo start --android.

或长途跋涉:

  1. 在 Android Studio 和 运行 虚拟设备中打开 AVD 管理器(您可以 之后关闭 AS)
  2. CMD 进入你的项目文件夹并输入 'expo start'
  3. Expo 开始后选择选项 2,即“按 a 键 Android 模拟器

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

当我 运行 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

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

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

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

在此之后,您可能会遇到上面提到的问题所以解决方案是:

npm run eject

这里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 文件夹。

无需升级react-native

如果您使用 expo 命令创建了您的项目,例如 expo init projectname,那么之后您必须弹出您的项目:

expo eject

如果您是通过 react-native init projectName 创建项目的,那么您必须使用

react-native eject

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

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

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

删除文件:React Native Project Root Directory and locate android -> app -> build -> intermediates -> signing_config -> debug -> out -> signing-config.json.

运行 Windows 中的管理员终端对我有用...其他解决方案无效。

我正在使用 Android Studio(非 expo),这对我有用

react-native init <your-project-name>

您必须 运行 您的 cmd 具有管理员权限。这为我解决了同样的问题。 没有做 "eject" 或其他任何事情。

打开你的 React Native 项目根目录并找到 android -> app -> build -> intermediates -> signing_config -> debug -> out -> signing-config.json

删除文件后重试。

打开你的 React Native 项目根目录并找到 android -> app -> build -> intermediates -> signing_config -> debug -> out -> signing-config.json . 删除signing-config.json这个文件 再试一次

1)有时如果我们有旧版本的 React Native,而一些新安装的包不支持旧版本。然后你必须使用 react-native upgrade 命令更新 react native 项目。

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

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

运行 您的命令带有“--verbose”。我收到无法读取文件的错误(在 android/app/build/generated/not_namespaced_r_class_sources/ 中)。我删除了这个文件夹,它起作用了

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

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

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

sudo npx react-native run-android

我今天遇到了这个问题,none 的解决方案对我有用,所以我找到了另一个。

Badly Formatted AndroidManifest.xml会导致这个问题,也许你今天像我一样设置了splash screen,没有按照正确的方式格式化AndroidManifest

删除signing-config.json下次再试react-nativerun-android

signing-config.json 文件路径:android -> app -> build -> intermediates -> signing_config -> debug -> out -> signing-config.json

我认为您可以检查一件更简单的事情,如果您之前 运行 项目作为用户的不同角色,例如 windows 如果您之前 运行 react-native run-android 具有管理员角色。

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

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

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

我不得不重新设置 AndroidManifest.xml 的样式,因为我在某处有语法错误(我在某处有一个额外的“/”)。现在修好了。小心你的语法...

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

解决方案:-

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

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

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

Windows 要求您在管理员模式下使用 mklink,所以我做到了。在那之后,我无法再 运行 npx react-native run-android 没有得到这个错误,甚至 运行ning 在管理 cmd 终端。

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

否则,我试过:

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

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

管理员身份打开项目

react-native run-android

注意:确保你已经安装了 reactive-native cli。

在 windows、运行.

上安装 reactive-native cli
npm install -g react-native-cli

此错误可能发生在为您的项目生成 .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

对我来说,这是停止不允许构建或清洁的 firebase 函数服务的问题。因此,您可以检查项目目录

中是否没有服务您运行

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

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

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

确保您没有在 AndroidManifest.xml 中发表任何评论。

您可以通过转到 node_modules 文件夹然后转到 glob 文件夹然后转到 common.js 在此文件中找到 (options.allowWindowsEscape = ture) 现在您必须将 true 更改为 false as this (options.allowWindowsEscape = false) 现在希望你的错误能得到解决。

进入node_modules文件夹,找到glob,然后打开common.js文件。在搜索 options.allowWindowsEscape 时,您会发现 options.allowWindowsEscape = true,将其更改为 false 即可完美运行!