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 包。
转到项目根目录。
在命令提示符中通过键入升级 React native 包:
react-native upgrade
.
然后在 命令提示符 .
中键入 y (Yes)
以接受更新所有文件
我们遇到这个问题是因为 android 文件夹 gradlew 和 gradlew.bat 中的文件(Gradle UN*X 的启动脚本,Windows 分别)以某种方式进入了全局 .gitignore 文件,因此没有出现在本地环境中。
实际上 运行 react-native upgrade 命令恢复那些文件,从而解决了问题。
我知道这是一个老问题,但这些解决方案中的任何一个都不适合我,也许还有像我这样的人。我在 run-android
之前解决了我的问题 运行 这个命令
react-native eject
我喜欢这个...成功了!!
- 在CMD项目根目录下运行react-native升级.
- 如果您仍然遇到问题,确保您有react-native
在package.json中的dependencies json中,如果没有就添加
- 如果您仍然遇到问题,请使用 react-native -v 在 cmd 中获取 react native 的版本,并检查 cmd 和 [=33 中返回的值是否=] 是一样的。使用 cmd
中返回的值更新 package.json
我的问题解决了。
作为补充,在没有找到react-native命令的情况下,你应该安装react-native CLI:
npm install -g react-native-cli
那你就按照上面人说的步骤就可以了
更多详情:
确保使用命令(非 expo)启动项目:
react-native init <your-project-name>
如果存在文件夹,则遵循:
在最新版本的 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.
或长途跋涉:
- 在 Android Studio 和 运行 虚拟设备中打开 AVD 管理器(您可以
之后关闭 AS)
- CMD 进入你的项目文件夹并输入 'expo start'
- 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 项目。
- 将当前项目更新到新版本后,此错误应该会解决。
对我来说,“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 即可完美运行!
我在我的 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 theapp.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 包。
转到项目根目录。
在命令提示符中通过键入升级 React native 包:
react-native upgrade
.然后在 命令提示符 .
中键入y (Yes)
以接受更新所有文件
我们遇到这个问题是因为 android 文件夹 gradlew 和 gradlew.bat 中的文件(Gradle UN*X 的启动脚本,Windows 分别)以某种方式进入了全局 .gitignore 文件,因此没有出现在本地环境中。
实际上 运行 react-native upgrade 命令恢复那些文件,从而解决了问题。
我知道这是一个老问题,但这些解决方案中的任何一个都不适合我,也许还有像我这样的人。我在 run-android
react-native eject
我喜欢这个...成功了!!
- 在CMD项目根目录下运行react-native升级.
- 如果您仍然遇到问题,确保您有react-native 在package.json中的dependencies json中,如果没有就添加
- 如果您仍然遇到问题,请使用 react-native -v 在 cmd 中获取 react native 的版本,并检查 cmd 和 [=33 中返回的值是否=] 是一样的。使用 cmd 中返回的值更新 package.json
我的问题解决了。
作为补充,在没有找到react-native命令的情况下,你应该安装react-native CLI:
npm install -g react-native-cli
那你就按照上面人说的步骤就可以了
更多详情:
确保使用命令(非 expo)启动项目:
react-native init <your-project-name>
如果存在文件夹,则遵循:
在最新版本的 react-native 中,当您尝试发出命令时会出现此建议:
react-native eject
Scanning folders for symlinks in D:\ProjectRoot\ReactNativeProjects\AwesomeProject\node_modules (48ms) App
name
must be defined in theapp.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.
或长途跋涉:
- 在 Android Studio 和 运行 虚拟设备中打开 AVD 管理器(您可以 之后关闭 AS)
- CMD 进入你的项目文件夹并输入 'expo start'
- 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 项目。
- 将当前项目更新到新版本后,此错误应该会解决。
对我来说,“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 clinpm 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 即可完美运行!