一段时间后,adb 停止检测我的手机

Posted

技术标签:

【中文标题】一段时间后,adb 停止检测我的手机【英文标题】:Adb stops detecting my phone after a while 【发布时间】:2011-12-01 06:33:33 【问题描述】:

我正在 linux 机器上为 android 开发,我已经为 android 创建了一个 udev 规则,它可以工作。一段时间后,如果我拔下设备并重新插入,如果我运行lusbdmesg 以获取有关设备的信息,adb 将无法识别设备。我尝试重新加载udev 规则但它不起作用,我什至试图杀死adb 进程但它仍然不起作用。

有人可以帮忙吗? 无论如何,谢谢。

【问题讨论】:

【参考方案1】:

这似乎是 linux 上的一个真正问题,在某个时间点,ADB 将不再看到设备。我真正应该说的是亚行几乎从未见过。就我而言,我有一个三星 Galaxy Tab 10.1,它被赠送给了 Google I/O 2011 的与会者。我的 Ubuntu 10.10 开发系统在这个设备上运行得很好。 9 月 19 日附近的某个时候,亚行停止看到该设备!事实上,ADB 检测到该设备的时间很短。我和我认为法老遇到的问题需要澄清的不是执行时的权限问题

$adb 设备

返回 ????????????对于一个设备。该设备根本不会出现在列表中。一个更重要的事实是,在我的基于 Windows 的开发机器上从未检测到此设备。

在我看来,ADB 用来确定 USB 上的设备是否实际上是 adb_device 的机制很脆弱,我们的设备或我们的开发系统中的一些更改破坏了这种检测。

【讨论】:

仅供参考,这在 Windows 上也经常发生。 ADB 报告各种错误 - 设备断开连接、连接关闭等。我的解决方案:拔下设备并重新插入,然后在 Eclipse 的设备视图中重新启动 ADB。这在大多数情况下有效(再持续一个小时)。 如果返回 ???????????您必须添加 udev 规则,问题是一段时间后完全丢失。 哎呀——我也刚开始得到这个。叹。并且 linux 看起来很有前途,因为与 Windows 相比,它在 Eclipse 中在 Linux 下构建我们的项目要快得多【参考方案2】:

由于某些原因,adb 有时会断开连接,所以在这种情况下,您必须 restart adb。

转到DDMS->Devices,您将在View Menu 中看到Reset adb 选项以及Screen Capture 选项。

【讨论】:

【参考方案3】:

我通常会遇到这个问题,因为我在 Chrome 上安装了 adb 插件。如果我关闭 Chrome 并重新连接设备,它会与 adb 一起列出。希望这会有所帮助。

【讨论】:

这对我有用!关闭 chrome,adb 立即检测到设备,无需重启。我遇到这个问题已经有一段时间了,我不知道是 Chrome 引起的。仅供参考,我在 Fedora 上 我也是这样。杀死 chrome 进程,adb 找到了设备。我的 chrome 没有 adb 插件,我还不确定,但我认为当您在“chrome://inspect”选项卡上取消选中“发现 USB 设备”时,问题就不会发生了【参考方案4】:

我的 OnePlus 2 也出现了这个问题。

前一天还在工作。然后,我使用 Chrome DevTools 中的“设备检查器”对话框设置了端口转发。它应该保持打开状态才能正常工作,所以我在标签中永久保持打开状态。

第二天当我通过 USB 连接我的设备时,adb devices 没有列出任何内容。我在 devtools 中关闭了设备检查器对话框,突然 adb 再次识别出我的设备。在此之后我重新启用了端口转发,但仍然检测到我的设备。

tl;dr:如果 Chrome DevTools 中的端口转发对话框在您移除设备后仍保持打开状态,请关闭它。

【讨论】:

【参考方案5】:

我以前也遇到过这种情况。我禁用,然后在手机上重新启用调试(设置 -> 应用程序 -> 开发 -> USB 调试,取消选中,然后重新检查)以再次被 adb 识别。

【讨论】:

不能那样工作。我试过了。等待新的答案版本。 您是否能够在另一台计算机上实现它?用不同的手机?这可能是 USB 怪癖的组合。 另外,我注意到如果我的 Nexus S 在连接时让它休眠,它会关闭 USB;不过,它可能也不相关。 它仅与 linux 相关,而我的经验仅适用于姜饼手机(股票和氰 2.3.*),2.1 htc legend 工作正常。 上述问题中描述的问题可能有几十个不同根本原因。因此,虽然这个答案显然不适用于所有人,但它确实对我有用。非常感谢! :)【参考方案6】:

尝试adb kill-server 停止 adb 并使用另一个命令“adb devices”重新启动它。它应该可以工作,并且应该再次检测到您的设备。 (对于那些可以编辑我的帖子的人:任何其他命令都会启动服务器,而不仅仅是 adb start-server,所以至少不要在没有发表评论的情况下进行编辑)

【讨论】:

我已经尝试过了,我发出命令 $adb kill-server;adb start-server;adb devices 它返回一个空列表。 您确定这不是设备问题吗?重新插入设备后,您是否在设备上打开了“USB 调试”?【参考方案7】:

可能很愚蠢,但我现在遇到了类似的问题,一个小时后我注意到问题是我的 USB 集线器,其中连接了这些设备,实际上并没有连接到 PC。

其实USB线是连接的,但是可能因为某种原因没有接触好,所以时不时会随机失效。

【讨论】:

【参考方案8】:

同样的问题,使用 mac os。但是,Android 文件传输应用程序可以识别连接的设备。这一切都始于 S3 手机(已植根),我认为手机有问题,因为 Nexus 7(库存)按预期工作。在连接/重新连接 3 天后,它也不再被 adb 识别。尝试执行硬重置 - 没有帮助。

adb 列表 - 空列表

android 文件传输 - 完美运行

我很快就会用完设备

【讨论】:

【参考方案9】:

在 ubuntu 上观察到同样的问题,我尝试了以下方法并且成功了:

参考:link

使用上述参考中的命令 udevadm 作为 ex:

"sudo udevadm test --action="SUBSYSTEM=="usb", ENVID_VENDOR_ID=="[vendor_id]", ENVID_MODEL_ID=="[model_id]" MODE="0666", SYMLINK+="[Device_Name]"" $(udevadm info -q path -n /dev/bus/usb/001/[DevNum])"

这似乎修复了一些链接文件,并且解决了一段时间后 adb 未检测到设备的问题。

【讨论】:

以上是关于一段时间后,adb 停止检测我的手机的主要内容,如果未能解决你的问题,请参考以下文章

Android adb devices 没有检测到我的手机

[异常解决] android stdio检测不到手机的解决办法——ADB驱动自己安装

android adb 如何检测手机中某个软件的版本?

手机一进入ADB sideload就电脑检测不到

adb devices检测不到小米Note 3的问题

Win7 adb devices检测不到华为p30设备?