React Native adb反向ENOENT

XPL*_*1ON 23 android adb genymotion react-native

我试图让React-Native使用Android V4.2.2 (Genymotion)但我无法在模拟器上测试应用程序.当我跑react-native run-android,我得到这个错误Could not run adb reverse: spawnSync

这是一个日志

JS server already running.
Running /User/Pan/Library/Android/sdk/platform-tools/adb reverse tcp:8081 tcp:8081
Could not run adb reverse: spawnSync /User/Pan/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 '/User/Pan/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
Run Code Online (Sandbox Code Playgroud)

注意:在日志中它说SDK目录不存在,我仔细检查我确实在该目录中安装了SDK.

我在执行时找到了我的android模拟器 adb devices

List of devices attached
192.168.56.101:5555 device
Run Code Online (Sandbox Code Playgroud)

我已经从Stack Overflow帖子尝试了以下步骤,但仍然没有运气 /sf/answers/2697540331/

Sur*_*S50 61

我遇到了同样的问题.我再次更新了我的ANDROID_HOME env变量,它对我有用.

请遵循此React-native android-setup文档

例如:

export ANDROID_HOME=~/Library/Android/sdk
Run Code Online (Sandbox Code Playgroud)


Abh*_*yMe 42

从 macOS Catalina 开始,您的 Mac 使用 zsh 作为默认登录 shell 和交互式 shell。您也可以在早期版本的 macOS 中将 zsh 设为默认值。 来自 Apple 的有关 zsh 的更多详细信息

所以在你的 Mac 上:

1 - 打开您的 .zshrc 文件:

open ~/.zshrc
Run Code Online (Sandbox Code Playgroud)

2 - 如果 .zshrc 文件不存在,您需要创建一个并再次打开(步骤 1)

touch ~/.zshrc
Run Code Online (Sandbox Code Playgroud)

3 - 将此添加到您的 .zshrc 文件中

export ANDROID_SDK=/Users/<your_computer_name>/Library/Android/sdk
export PATH=/Users/<your_computer_name>/Library/Android/sdk/platform-tools:$PATH
Run Code Online (Sandbox Code Playgroud)

4 - 保存并关闭

5 - 编译您的更改

source ~/.zshrc
Run Code Online (Sandbox Code Playgroud)

并确保重新启动您的终端。


Pra*_*rma 9

此答案适用于MacOs Catalina或高于用户,zsh因为您的 Mac 现在使用 zsh 作为默认登录 shell 和交互式 shell。

这与路径问题有关。

如果您遵循 React NativeSetting up the development environment指南的文档。然后执行以下操作。

  1. ~/.zshrc使用编辑器打开。就我而言,我使用 vim
vim ~/.zshrc
Run Code Online (Sandbox Code Playgroud)
  1. 为路径添加以下行。
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
Run Code Online (Sandbox Code Playgroud)

确保正确添加上面的行,否则它会给你一个奇怪的错误。

  1. 保存更改并关闭编辑器。

  2. 最后,现在编译您的更改

source ~/.zshrc
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我得到了这个。我希望这可以帮助你。


Din*_*ris 8

我也遇到了同样的问题.我在同一个cmd中再次更新了我的ANDROID_HOME env变量,并且工作正常.

> export ANDROID_HOME=~/Android/Sdk 
> export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
Run Code Online (Sandbox Code Playgroud)

祝好运


小智 8

I solved this error with installing adb

On Linux

sudo apt-get install android-tools-adb
Run Code Online (Sandbox Code Playgroud)


小智 8

这是我的解决方案操作系统:Linux mint

sudo apt-get install android-tools-adb
Run Code Online (Sandbox Code Playgroud)


Ham*_*ood 8

我使用的是 Linux,在我的情况下,ANDROID_HOME 环境变量已添加到 .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
Run Code Online (Sandbox Code Playgroud)

将它们添加到 ~/.zshrc 文件中并重新加载终端。


小智 7

首先,我在 .bash_profile 中设置了这样的路径

export PATH="~/Library/Android/sdk/platform-tools":$PATH
export ANDROID_HOME="~/Library/Android/sdk/platform-tools"
Run Code Online (Sandbox Code Playgroud)

但这并不能解决我的问题。

对我来说,通过在script标签下的package.json 中添加以下 npm 脚本,就像 Mac 上的魅力一样。

"android-dev": "adb reverse tcp:8081 tcp:8081 && react-native run-android"
Run Code Online (Sandbox Code Playgroud)

然后我只是在跑步npm run android-dev,一切都准备好了。确保在您的应用设置中已启用实时重新加载,这样我就可以在我的手机上的开发服务器上工作并立即在应用中查看编码更改。