Expo/GenyMotion 在 运行 项目时抛出 "ADB server didn't ACK"
Expo/GenyMotion throws "ADB server didn't ACK" when running project
我正在尝试在 Ubuntu 上使用 GenyMotion 和 Expo 建立一个 React Native 项目。但是,当我在 Expo 中单击 'Device' 按钮将应用程序打包到模拟器上时,我在 Expo 控制台中收到以下错误:
我最初尝试通过 Android Studio 使用内置 Android 模拟器的 React Native,所以我认为问题可能是我的计算机有多个 ADB 版本(当我 运行 $ adb --start-server
来自终端,它是 运行 Android Studio 二进制文件,而不是 GenyMotion 二进制文件)。所以我:
- 删除了我能找到的所有 Android Studio 相关内容,包括位于
Android/Sdk/
和现在 $ adb --start-server
的 SDK
- 运行
$ sudo apt-get remove adb android-tools-adb
将 GenyMotion 中 Android SDK 的文件路径设置为我的 GenyMotion Android SDK。但我猜和默认设置一样,所以我不知道我是否需要这样做?
从我的 .bashrc
文件中删除了与 Android Studio 相关的所有路径变量,包括 $ANDROID_HOME
。 (我应该改为设置 $ANDROID_HOME
指向 GenyMotion Android SDK 吗?
完成上述操作后,$ ps -aux | grep 5037
输出如下:
即使在退出 GenyMotion 和 Expo 之后,看起来仍然有一个分叉的 ADB 守护进程 运行ning。如果我 cd
我的 GenyMotion SDK 和 运行 $ ./adb kill-server
(在退出 GM 和 Expo 之后)该过程不再出现在 ps
的输出中。然而,有趣的是,如果我 运行 $ ./adb start-server
我得到这个:
但是我不知道如何更新ADB的GenyMotion版本。这似乎也表明存在不同的 ADB 服务器和客户端程序。这个对吗?我只与 SDK 文件夹中的 adb
二进制文件进行过交互。
更新:我尝试再次从终端启动 ADB,但无法重新创建版本冲突错误。服务器现在完美启动。
我也遇到了隧道在 Expo 中不起作用的问题,所以我将主机更改为本地主机。它有效,但我不确定此更改的确切含义是什么:
显然,我对 Android 开发很陌生,尤其是 GenyMotion/Expo。但我认为我的故障排除工作非常彻底。我还能尝试什么?
至少对我而言,解决方案是我需要将 export PATH="/home/darik/projects/android/genymotion/tools:$PATH"
添加到我的 .bashrc
文件中。我猜 ADB 服务器没有响应的原因是 Expo 在我的路径环境变量中找不到 ADB 服务器。
我的解决方案是在系统上安装了多个 adb。
我系统上的 adb 版本与 android sdk platform-tools 上的 adb 版本不同。
我只是在 PATH 中添加了正确的文件夹 C:\\Ragnulf\AppData\Local\Android\Sdk\platform-tools
我正在尝试在 Ubuntu 上使用 GenyMotion 和 Expo 建立一个 React Native 项目。但是,当我在 Expo 中单击 'Device' 按钮将应用程序打包到模拟器上时,我在 Expo 控制台中收到以下错误:
我最初尝试通过 Android Studio 使用内置 Android 模拟器的 React Native,所以我认为问题可能是我的计算机有多个 ADB 版本(当我 运行 $ adb --start-server
来自终端,它是 运行 Android Studio 二进制文件,而不是 GenyMotion 二进制文件)。所以我:
- 删除了我能找到的所有 Android Studio 相关内容,包括位于
Android/Sdk/
和现在$ adb --start-server
的 SDK
- 运行
$ sudo apt-get remove adb android-tools-adb
将 GenyMotion 中 Android SDK 的文件路径设置为我的 GenyMotion Android SDK。但我猜和默认设置一样,所以我不知道我是否需要这样做?
从我的
.bashrc
文件中删除了与 Android Studio 相关的所有路径变量,包括$ANDROID_HOME
。 (我应该改为设置$ANDROID_HOME
指向 GenyMotion Android SDK 吗?
完成上述操作后,$ ps -aux | grep 5037
输出如下:
即使在退出 GenyMotion 和 Expo 之后,看起来仍然有一个分叉的 ADB 守护进程 运行ning。如果我 cd
我的 GenyMotion SDK 和 运行 $ ./adb kill-server
(在退出 GM 和 Expo 之后)该过程不再出现在 ps
的输出中。然而,有趣的是,如果我 运行 $ ./adb start-server
我得到这个:
但是我不知道如何更新ADB的GenyMotion版本。这似乎也表明存在不同的 ADB 服务器和客户端程序。这个对吗?我只与 SDK 文件夹中的 adb
二进制文件进行过交互。
更新:我尝试再次从终端启动 ADB,但无法重新创建版本冲突错误。服务器现在完美启动。
我也遇到了隧道在 Expo 中不起作用的问题,所以我将主机更改为本地主机。它有效,但我不确定此更改的确切含义是什么:
显然,我对 Android 开发很陌生,尤其是 GenyMotion/Expo。但我认为我的故障排除工作非常彻底。我还能尝试什么?
至少对我而言,解决方案是我需要将 export PATH="/home/darik/projects/android/genymotion/tools:$PATH"
添加到我的 .bashrc
文件中。我猜 ADB 服务器没有响应的原因是 Expo 在我的路径环境变量中找不到 ADB 服务器。
我的解决方案是在系统上安装了多个 adb。 我系统上的 adb 版本与 android sdk platform-tools 上的 adb 版本不同。
我只是在 PATH 中添加了正确的文件夹 C:\\Ragnulf\AppData\Local\Android\Sdk\platform-tools