我正在尝试让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
注意:在日志中它说SDK目录不存在,我仔细检查我确实在该目录中安装了SDK。
我在执行adb devices
List of devices attached
192.168.56.101:5555 device
我在Stack Overflow帖子中尝试了以下步骤,但仍然没有运气 https://stackoverflow.com/a/38536290/4540216
答案 0 :(得分:36)
我遇到了同样的问题。我再次更新了我的ANDROID_HOME env变量,它对我有用。
关注此React-native android-setup documentation
例如:
export ANDROID_HOME=~/Library/Android/sdk
答案 1 :(得分:32)
从macOS Catalina开始,您的Mac使用zsh作为默认登录Shell和交互式Shell。您也可以在早期版本的macOS中将zsh设置为默认值。 More details on zsh from Apple
因此在Mac上:
1-打开您的.zshrc文件:
open ~/.zshrc
2-如果.zshrc文件不存在,则需要创建一个文件并再次打开(步骤1)
touch ~/.zshrc
3-将此添加到您的.zshrc文件
export ANDROID_SDK=/Users/<your_computer_name>/Library/Android/sdk
export PATH=/Users/<your_computer_name>/Library/Android/sdk/platform-tools:$PATH
4-保存并关闭
5-编译您的更改
source ~/.zshrc
&确保重启终端。
答案 2 :(得分:7)
我也遇到了同样的问题。我在同一个cmd中再次更新了我的ANDROID_HOME env变量,并且工作正常。
> export ANDROID_HOME=~/Android/Sdk
> export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
祝你好运
答案 3 :(得分:5)
这是我的解决方案 操作系统:Linux mint
sudo apt-get install android-tools-adb
答案 4 :(得分:4)
此答案适用于MacOs Catalina
用户或zsh
用户,因为您的Mac现在使用zsh作为默认登录外壳程序和交互式外壳程序。
这与路径问题有关。
如果您遵循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
确保正确添加以上行,否则会给您带来奇怪的错误。
保存更改并关闭编辑器。
最后,现在编译您的更改
source ~/.zshrc
在我的情况下,我可以正常工作。希望对您有帮助。
答案 5 :(得分:3)
我通过安装adb解决了该错误
在Linux上
sudo apt-get install android-tools-adb
答案 6 :(得分:1)
首先,我在.bash_profile中设置了这样的路径
export PATH="~/Library/Android/sdk/platform-tools":$PATH
export ANDROID_HOME="~/Library/Android/sdk/platform-tools"
但是它不能解决我的问题。
对我来说,在 script 标记下的 package.json 中添加以下npm脚本,在Mac上就像魅力一样。
"android-dev": "adb reverse tcp:8081 tcp:8081 && react-native run-android"
然后我只需运行 npm run android-dev
即可。确保在您的应用程序设置中已启用实时重新加载,这样我就可以在移动设备上的开发服务器上工作,并立即在应用程序中查看编码更改。