API21 的远程 Genymotion 设备连接失败

Remote Genymotion device connection failed for API21

我在另一台本地 PC 上有一个 Genymotion 设备(由于性能较慢),Android Studio 在另一台开发 PC 上。我可以从我的开发 PC 连接任何低于 API21 的 Genymotion 设备(使用 adb connect 192.168.x.x)但是任何设备 API 21 在我的开发 PC 中显示离线,尽管 adb 可以很好地连接。在"device choose"面板和设备监视器中,显示offline。但在远程 PC 中,同一台设备在线并且可以工作。为什么 API 低于 21 的设备显示 online,而 API 21+ 的设备显示 offline。 连接到我的远程 Genymotion 设备后,我得到以下信息。但是同一台设备在该远程主机上运行良好。 API21 以下的任何设备显示 online

我想我自己通过尝试 n error.After 连接远程 genymotion 设备(API21),我发现任务管理器中有几个 adb 进程用于单个 genymotion device.Then 我从远程机器上的 windows 任务管理器手动停止所有 "adb" 进程(或所有 adb 进程的 adb kill-server 命令,在我的例子中还有更多)。然后使用 adb 命令我重新启动并再次连接相同的远程设备 frm 开发机器。它以某种方式连接并现在显示在线并且按预期工作。我不知道为什么它会发生在 < API21 的设备上。其他设备 >=API21 直接连接并显示 online.The 问题似乎是远程机器上的多个 adb 进程对于仅 API21 的单个 genymotion 设备。

我还可以通过重命名 genymotion\tools 目录中的 adb 二进制文件来让 adb over wifi 工作。

我还使用以下命令从 Genymotion VM 上的终端仿真器通过 wifi 启用了 adb:

setprop service.adb.tcp.port 5555

停止 adbd

启动 adbd

启动 adbd(只是为了确定)

这比通过 wifi 应用程序使用某些 adb 更可靠:)

(请注意,如果禁用 genymotion 播放器 adb 实例,您现在将无法连接到本地主机 ide)

我尝试了两种解决方案(包括已接受的解决方案),但都没有用。终于找到了解决这个问题的方法。经过多次摆弄,我发现 genymotion 当时只允许来自一台机器的 adb connection。立即在主机上执行 adb kill-server 然后在远程计算机上执行 adb connect ip 就可以了。