我在 Linux 机器上为 Android 开发,已经创建了一个针对 Android 的 udev 规则并且它有效。但是,如果我一段时间后拔掉并重新插入设备,当我运行 lusb 或 dmesg 命令来获取设备信息时,adb 就无法识别该设备。我尝试重新加载 udev 规则,但这并没有起作用。我甚至尝试关闭 adb 进程,但还是无法解决问题。
有谁能帮忙吗? 不管怎样,谢谢。
有谁能帮忙吗? 不管怎样,谢谢。
我通常会因为在Chrome中安装了adb插件而遇到这个问题。 如果我关闭Chrome并重新连接设备,则会出现adb列表中的设备。希望这可以帮助解决问题。
由于某些原因,有时adb会断开连接,因此在这种情况下,您需要重新启动
adb。
转到DDMS->设备
,您将在查看菜单
中的重置adb
选项旁边看到屏幕截图
选项。
adb devices
没有列出任何内容。我关闭了 devtools 中的设备检查器对话框,然后 adb 又能识别我的设备了。之后我重新启用了端口转发,但仍然能够检测到我的设备。我以前也遇到过这种情况。我会在手机上禁用,然后重新启用调试(设置 -> 应用程序 -> 开发 -> USB调试,取消选中,然后重新选中),以便再次通过adb识别它。
在Ubuntu上观察到相同的问题,我尝试了以下方法并成功解决:
参考:link
使用上述参考中的命令udevadm,例如:
"sudo udevadm test --action="SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="[vendor_id]", ENV{ID_MODEL_ID}=="[model_id]" MODE="0666", SYMLINK+="[Device_Name]"" $(udevadm info -q path -n /dev/bus/usb/001/[DevNum])"
可能有点傻,但我现在遇到了类似的问题,经过一个小时的检查,我发现问题出在我的USB集线器上,其中连接了这些设备,实际上并没有真正连接到电脑上。
事实上,USB线确实已连接,但由于某种原因它们可能没有良好的接触,所以会不时地随机失败。
adb kill-server
停止adb并使用另一个命令'adb devices'重新启动它。它应该可以正常工作并再次检测到您的设备。(对于那些可以编辑我的帖子的人:任何其他命令都会启动服务器,而不仅仅是adb start-server,因此请不要在没有至少留下评论的情况下进行编辑)