Genymotion中运行的虚拟设备会定期在ADB中离线

23

我有一个 Android 设备 (带 Lollipop 镜像,如果重要的话) 在 Genymotion 2.4 上运行,并通过 ADB (版本 1.0.32) 从另一台开发者 PC 中的 Eclipse 连接到本地网络中的设备,没有连接问题。除了定期的 ADB 连接中断 (其他协议都能正常工作),也就是 ADB 失去了设备连接,当我尝试重新连接时,它会显示设备离线。根据我的经验,这种离线状态基本上意味着接收端 (设备) 仍然认为它已连接并拒绝新的连接。我所知道解决这个问题的唯一方法是重新启动设备,然后 ADB 就可以正常连接。

如果有人感兴趣,ADB 并未在 Genymotion 的远程主机上运行,否则其他 PC 的远程连接将无法进行。

问题:如何“轻松”刷新虚拟设备以接受新的 ADB 连接而无需重新启动整个设备?

P.S. 如果我把“离线”设备独自留置一段时间(相当长的时间,例如一个小时),它似乎会在没有外部干预的情况下刷新其状态,因此 ADB 再次能够正确连接,设备将被报告为“在线”。但是,等待这种情况发生太长时间没有意义。这只是需要考虑的新信息。


我的Genymotion也有问题。模拟器经常离线,特别是当我的电脑进入睡眠状态时。我总是需要重新启动模拟器。一定有更好的解决方案。 - zulkarnain shah
2个回答

19

这种方法可能对你没用,但在我的设备仅仅出现ADB离线的情况下是有效的。你问题下面的评论中有人提到他们的模拟器通常在设备休眠时会离线。我的也一样,在长时间不活动后也会离线,尽管它并没有真正进入睡眠状态。无论如何,我的解决方法很简单:

在终端中,导航到你安装SDK的位置。然后,转到SDK中的platform-tools目录,并执行以下命令:

adb kill-server

完成后,请输入以下内容:

adb devices

这几乎总是能解决我的问题,我希望它也能解决你的问题。让我知道它对你是否有用。


1
对我来说有效,尽管我在我的机器上必须运行两次 adb devices。谢谢。 - The Vanaras
1
太好了。谢谢你。这比关闭模拟器并重新启动Genymotion要方便得多。 - Simon
@chetan,我需要更多的信息才能做出任何有意义的回应。您之前看过设备列表吗?您是否已经将相关设备允许连接到您的电脑?该设备目前是否已连接并开启电源?我很乐意提供帮助,但不幸的是需要更多信息。 - blueberry_chopsticks
  1. 当我连接实际设备时是“是”,当我运行虚拟设备时是“否”。
  2. 是。
  3. 是,虚拟设备已连接并已开机。
- chetan

1
如果您使用的是MacOS Sierra系统,那么其中有一个已知的错误。 2016年11月28日目前还没有解决方法,除了重启adb(在@lustig的回答中建议)。
  • Google会在Android Studio 2.3中修复它。问题跟踪链接:82425216214
  • 目前没有关于苹果是否会在他们的端解决这个问题的信息。

不是的,我的两台电脑都在运行Windows系统。从您的答案中无法确定是否在特定版本的ADB中修复了此问题。如果是的话,那么是哪个版本?仅提及Android Studio是不足够的。 - Stan
@Stan 更新了我的答案,但似乎与Windows无关。留给MacOS用户。 - localhost
是的,我在MacOS Sierra上遇到了这个问题,@lustig的答案对我没有用。 - Mostafa Arian Nejad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接