React Native adb 反向 ENOENT
React Native adb reverse ENOENT
我正在尝试让 React-Native 与 Android V4.2.2 (Genymotion)
一起工作,但我无法在模拟器上测试该应用程序。当我 运行 react-native run-android
,我得到这个错误 Could not run adb reverse: spawnSync
这是日志
JS server already running.
Running ~/Library/Android/sdk/platform-tools/adb reverse tcp:8081 tcp:8081
Could not run adb reverse: spawnSync ~/Library/Android/sdk/platform-tools/adb ENOENT
Building and installing the app on the device (cd android && ./gradlew installDebug...
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring project ':app'.
> The SDK directory '~/Library/Android/sdk' does not exist.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 3.785 secs
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/android-setup.html
注意:在日志中它说 SDK 目录不存在,我仔细检查了我是否在该目录中安装了 SDK。
我在执行 adb devices
时找到了我的 android 模拟器
List of devices attached
192.168.56.101:5555 device
我已经尝试了 Stack Overflow post 中的以下步骤,但仍然没有成功
我遇到了同样的问题。我再次更新了我的 ANDROID_HOME 环境变量,它对我有用。
关注这个React-native android-setup documentation
例如:
export ANDROID_HOME=~/Library/Android/sdk
Windows:
set ANDROID_HOME=c:/Users/whoever/AppData/Local/Android/Sdk
macOS Mojave 及更早版本或 bash 用户:
1 - 打开您的 bash 个人资料:
open .bash_profile
将此添加到您的 bash_profile:
export ANDROID_SDK=/Users/<your_computer_name>/Library/Android/sdk
export PATH=/Users/<your_computer_name>/Library/Android/sdk/platform-tools:$PATH
保存并关闭
编译您的更改
source ~/.bash_profile
For macOS Catalina and zsh users:
从 macOS Catalina 开始,您的 Mac 使用 zsh 作为默认登录 shell 和交互式 shell。您也可以将 zsh 设置为早期版本的 macOS 中的默认值。
你的 Mac:
打开您的 .zshrc 文件:
open ~/.zshrc
如果 .zshrc 文件不存在,您需要使用 touch
创建一个并打开。
touch ~/.zshrc
将此添加到您的 .zshrc 文件
export ANDROID_SDK=/Users/<your_computer_name>/Library/Android/sdk
export PATH=/Users/<your_computer_name>/Library/Android/sdk/platform-tools:$PATH
保存并关闭
编译您的更改
source ~/.zshrc
编辑:更新了针对 macOS Catalina 和 zsh 用户的回答。
我也遇到了同样的问题。我在同一个 cmd 中再次更新了我的 ANDROID_HOME env 变量,它工作正常。
> export ANDROID_HOME=~/Android/Sdk
> export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
祝你好运
首先我在 .bash_profile 中设置了这样的路径
export PATH="~/Library/Android/sdk/platform-tools":$PATH
export ANDROID_HOME="~/Library/Android/sdk/platform-tools"
但这并没有解决我的问题。
对我来说,通过在 package.json 标签下的 script 中添加以下 npm 脚本,在 Mac 上就像魅力一样.
"android-dev": "adb reverse tcp:8081 tcp:8081 && react-native run-android"
那我干脆运行npm run android-dev
就完事了。确保在您的应用程序设置中已启用实时重新加载,这样我就可以在我的手机上处理开发服务器并立即在应用程序中看到编码更改。
我通过安装 adb 解决了这个错误
在 Linux
sudo apt-get install android-tools-adb
从 macOS Catalina 开始,您的 Mac 使用 zsh 作为默认登录 shell 和交互式 shell。您也可以将 zsh 设置为早期版本的 macOS 中的默认设置。
More details on zsh from Apple
所以在你的 Mac:
1 - 打开您的 .zshrc 文件:
open ~/.zshrc
2 - 如果 .zshrc 文件不存在,您需要创建一个并再次打开(步骤 1)
touch ~/.zshrc
3 - 将此添加到您的 .zshrc 文件(添加 JAVA_HOME 以使用 Android Studio Embedded JDK)
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/Contents/Home
export ANDROID_HOME=/Users/<your_computer_name_here>/Library/Android/sdk
export PATH=$ANDROID_HOME/emulator:$PATH
export PATH=$ANDROID_HOME/platform-tools:$PATH
export PATH=$ANDROID_HOME/tools:$PATH
export PATH=$ANDROID_HOME/tools/bin:$PATH
4 - 保存并关闭
5 - 编译您的更改
source ~/.zshrc
& 确保重启你的终端。
这是我的解决方案
操作系统:Linuxmint
sudo apt-get install android-tools-adb
此答案适用于 MacOs Catalina
或以上用户或 zsh
用户,因为您的 Mac 现在使用 zsh 作为默认登录 shell 和交互式 shell .
This is related to path issues.
如果您遵循 React Native Setting up the development environment
指南的文档。然后执行以下操作。
- 使用编辑器打开
~/.zshrc
。在我的例子中,我使用 vim
vim ~/.zshrc
- 为路径添加以下行。
export ANDROID_HOME="/Users/<yourcomputername>/Library/Android/sdk"
export PATH=$ANDROID_HOME/emulator:$PATH
export PATH=$ANDROID_HOME/tools:$PATH
export PATH=$ANDROID_HOME/tools/bin:$PATH
export PATH=$ANDROID_HOME/platform-tools:$PATH
Make sure to add the above line correctly else it will give you a weird error.
保存更改并关闭编辑器。
最后,现在编译您的更改
source ~/.zshrc
我在我的案例中得到了这个。希望对你有帮助。
这对我有用,
在 Linux
sudo apt-get install android-tools-adb
如果 none 的解决方案有效。试试 运行ning
来源 ~/.bash_profile&&react-native 运行-android
在 android 脚本下的 package.json 文件中将其更新为
"android": "source ~/.bash_profile&&react-native 运行-android"
MacOS Catalina 及以上版本:
"android": "source ~/.zshrc&&react-native 运行-android"
仅限Mac
如果接受的答案对您不起作用,请检查您的系统上是否安装了“adb”。如果没有,请使用自制软件安装 adb。
在我的情况下,我使用 Pop OS(Ubuntu) 并且安装了 android-studio,所以我只是
ln -s ~/Android/Sdk/platform-tools/adb /usr/bin/adb
我在 Linux 上,在我的例子中 ANDROID_HOME env 变量已经添加到 .zshrc 但路径不正确,更正路径修复它。
export ANDROID_SDK_ROOT=$HOME/Android/Sdk
export ANDROID_HOME=$HOME/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/emulator:$PATH
export PATH=$PATH:$ANDROID_HOME/tools:$PATH
export PATH=$PATH:$ANDROID_HOME/tools/bin:$PATH
export PATH=$PATH:$ANDROID_HOME/platform-tools:$PATH
将这些添加到 ~/.zshrc 文件中并重新加载您的终端。
我正在尝试让 React-Native 与 Android V4.2.2 (Genymotion)
一起工作,但我无法在模拟器上测试该应用程序。当我 运行 react-native run-android
,我得到这个错误 Could not run adb reverse: spawnSync
这是日志
JS server already running.
Running ~/Library/Android/sdk/platform-tools/adb reverse tcp:8081 tcp:8081
Could not run adb reverse: spawnSync ~/Library/Android/sdk/platform-tools/adb ENOENT
Building and installing the app on the device (cd android && ./gradlew installDebug...
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring project ':app'.
> The SDK directory '~/Library/Android/sdk' does not exist.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 3.785 secs
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/android-setup.html
注意:在日志中它说 SDK 目录不存在,我仔细检查了我是否在该目录中安装了 SDK。
我在执行 adb devices
List of devices attached
192.168.56.101:5555 device
我已经尝试了 Stack Overflow post 中的以下步骤,但仍然没有成功
我遇到了同样的问题。我再次更新了我的 ANDROID_HOME 环境变量,它对我有用。
关注这个React-native android-setup documentation
例如:
export ANDROID_HOME=~/Library/Android/sdk
Windows:
set ANDROID_HOME=c:/Users/whoever/AppData/Local/Android/Sdk
macOS Mojave 及更早版本或 bash 用户:
1 - 打开您的 bash 个人资料:
open .bash_profile
将此添加到您的 bash_profile:
export ANDROID_SDK=/Users/<your_computer_name>/Library/Android/sdk
export PATH=/Users/<your_computer_name>/Library/Android/sdk/platform-tools:$PATH
保存并关闭
编译您的更改
source ~/.bash_profile
For macOS Catalina and zsh users:
从 macOS Catalina 开始,您的 Mac 使用 zsh 作为默认登录 shell 和交互式 shell。您也可以将 zsh 设置为早期版本的 macOS 中的默认值。
你的 Mac:
打开您的 .zshrc 文件:
open ~/.zshrc
如果 .zshrc 文件不存在,您需要使用 touch
创建一个并打开。
touch ~/.zshrc
将此添加到您的 .zshrc 文件
export ANDROID_SDK=/Users/<your_computer_name>/Library/Android/sdk
export PATH=/Users/<your_computer_name>/Library/Android/sdk/platform-tools:$PATH
保存并关闭
编译您的更改
source ~/.zshrc
编辑:更新了针对 macOS Catalina 和 zsh 用户的回答。
我也遇到了同样的问题。我在同一个 cmd 中再次更新了我的 ANDROID_HOME env 变量,它工作正常。
> export ANDROID_HOME=~/Android/Sdk
> export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
祝你好运
首先我在 .bash_profile 中设置了这样的路径
export PATH="~/Library/Android/sdk/platform-tools":$PATH
export ANDROID_HOME="~/Library/Android/sdk/platform-tools"
但这并没有解决我的问题。
对我来说,通过在 package.json 标签下的 script 中添加以下 npm 脚本,在 Mac 上就像魅力一样.
"android-dev": "adb reverse tcp:8081 tcp:8081 && react-native run-android"
那我干脆运行npm run android-dev
就完事了。确保在您的应用程序设置中已启用实时重新加载,这样我就可以在我的手机上处理开发服务器并立即在应用程序中看到编码更改。
我通过安装 adb 解决了这个错误
在 Linux
sudo apt-get install android-tools-adb
从 macOS Catalina 开始,您的 Mac 使用 zsh 作为默认登录 shell 和交互式 shell。您也可以将 zsh 设置为早期版本的 macOS 中的默认设置。 More details on zsh from Apple
所以在你的 Mac:
1 - 打开您的 .zshrc 文件:
open ~/.zshrc
2 - 如果 .zshrc 文件不存在,您需要创建一个并再次打开(步骤 1)
touch ~/.zshrc
3 - 将此添加到您的 .zshrc 文件(添加 JAVA_HOME 以使用 Android Studio Embedded JDK)
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/Contents/Home
export ANDROID_HOME=/Users/<your_computer_name_here>/Library/Android/sdk
export PATH=$ANDROID_HOME/emulator:$PATH
export PATH=$ANDROID_HOME/platform-tools:$PATH
export PATH=$ANDROID_HOME/tools:$PATH
export PATH=$ANDROID_HOME/tools/bin:$PATH
4 - 保存并关闭
5 - 编译您的更改
source ~/.zshrc
& 确保重启你的终端。
这是我的解决方案 操作系统:Linuxmint
sudo apt-get install android-tools-adb
此答案适用于 MacOs Catalina
或以上用户或 zsh
用户,因为您的 Mac 现在使用 zsh 作为默认登录 shell 和交互式 shell .
This is related to path issues.
如果您遵循 React Native Setting up the development environment
指南的文档。然后执行以下操作。
- 使用编辑器打开
~/.zshrc
。在我的例子中,我使用 vim
vim ~/.zshrc
- 为路径添加以下行。
export ANDROID_HOME="/Users/<yourcomputername>/Library/Android/sdk"
export PATH=$ANDROID_HOME/emulator:$PATH
export PATH=$ANDROID_HOME/tools:$PATH
export PATH=$ANDROID_HOME/tools/bin:$PATH
export PATH=$ANDROID_HOME/platform-tools:$PATH
Make sure to add the above line correctly else it will give you a weird error.
保存更改并关闭编辑器。
最后,现在编译您的更改
source ~/.zshrc
我在我的案例中得到了这个。希望对你有帮助。
这对我有用,
在 Linux
sudo apt-get install android-tools-adb
如果 none 的解决方案有效。试试 运行ning 来源 ~/.bash_profile&&react-native 运行-android
在 android 脚本下的 package.json 文件中将其更新为 "android": "source ~/.bash_profile&&react-native 运行-android"
MacOS Catalina 及以上版本: "android": "source ~/.zshrc&&react-native 运行-android"
仅限Mac
如果接受的答案对您不起作用,请检查您的系统上是否安装了“adb”。如果没有,请使用自制软件安装 adb。
在我的情况下,我使用 Pop OS(Ubuntu) 并且安装了 android-studio,所以我只是
ln -s ~/Android/Sdk/platform-tools/adb /usr/bin/adb
我在 Linux 上,在我的例子中 ANDROID_HOME env 变量已经添加到 .zshrc 但路径不正确,更正路径修复它。
export ANDROID_SDK_ROOT=$HOME/Android/Sdk
export ANDROID_HOME=$HOME/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/emulator:$PATH
export PATH=$PATH:$ANDROID_HOME/tools:$PATH
export PATH=$PATH:$ANDROID_HOME/tools/bin:$PATH
export PATH=$PATH:$ANDROID_HOME/platform-tools:$PATH
将这些添加到 ~/.zshrc 文件中并重新加载您的终端。