一段时间后,adb 停止检测我的手机
Posted
技术标签:
【中文标题】一段时间后,adb 停止检测我的手机【英文标题】:Adb stops detecting my phone after a while 【发布时间】:2011-12-01 06:33:33 【问题描述】:我正在 linux 机器上为 android 开发,我已经为 android 创建了一个 udev
规则,它可以工作。一段时间后,如果我拔下设备并重新插入,如果我运行lusb
或dmesg
以获取有关设备的信息,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 停止检测我的手机的主要内容,如果未能解决你的问题,请参考以下文章