我正在linux机器上为android开发,我已经udev
为android创建了一个规则并且它可以工作。一段时间后,如果我拔下设备并重新插入,如果我运行或获取有关设备的信息,adb
则无法识别设备。我尝试重新加载规则但它不起作用,我什至试图终止该进程但它仍然不起作用。lusb
dmesg
udev
adb
有人可以帮忙吗?无论如何,谢谢你。
这似乎是 linux 上的一个真正问题,在某个时间点,ADB 将不再看到设备。我真正应该说的是亚行几乎从未见过。就我而言,我有一个三星 Galaxy Tab 10.1,它被赠送给了 Google I/O 2011 的与会者。我的 Ubuntu 10.10 开发系统在这个设备上运行得很好。9 月 19 日附近的某个时候,ADB 停止查看该设备!事实上,ADB 检测到该设备的时间很短。我和我认为法老遇到的问题需要澄清的不是执行的权限问题
$adb 设备
回报?????????对于一个设备。该设备根本不会出现在列表中。一个更重要的事实是,在我的基于 Windows 的开发机器上从未检测到此设备。
在我看来,ADB 用来确定 USB 上的设备是否实际上是 adb_device 的机制是脆弱的,我们的设备或我们的开发系统中的一些变化已经破坏了这种检测。
由于某种原因,有时 adb 会断开连接,所以在这种情况下,您必须restart
使用 adb。
转到DDMS->Devices
,您将Reset adb
在选项View Menu
之外看到Screen Capture
选项。
我通常会遇到这个问题,因为我在 Chrome 上安装了 adb 插件。如果我关闭 Chrome 并重新连接设备,它会与 adb 一起列出。希望这可以帮助。
我的 OnePlus 2 也遇到了这个问题。
前一天还在工作。然后,我使用 Chrome DevTools 中的“设备检查器”对话框设置了端口转发。它应该保持打开状态才能正常工作,所以我将它永久保持在选项卡中打开。
第二天当我通过 USB 连接我的设备时,adb devices
没有列出任何内容。我在 devtools 中关闭了设备检查器对话框,突然 adb 再次识别出我的设备。在此之后我重新启用了端口转发,但我的设备仍然被检测到。
tl;dr:如果 Chrome DevTools 中的端口转发对话框在您移除设备后仍保持打开状态,请关闭它。
我以前也有过这种情况。我禁用,然后在手机上重新启用调试(设置 -> 应用程序 -> 开发 -> USB 调试,取消选中,然后重新检查)以使其再次被 adb 识别。
同样的问题,使用mac os。但是,Android 文件传输应用程序可以识别连接的设备。这一切都始于 S3 手机(root),我认为手机有问题,因为 Nexus 7(库存)按预期工作。在连接/重新连接 3 天后,adb 也停止识别它。试图执行硬重置 - 没有帮助。
adb 列表 - 空列表
android 文件传输 - 完美运行
我很快就会用完设备
在 ubuntu 上观察到同样的问题,我尝试了以下方法并且它有效:
参考:链接
使用上述参考中的命令 udevadm 进行 ex:
"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])"
这似乎修复了一些链接文件,并解决了一段时间后 adb 未检测到设备的问题。
可能很愚蠢,但我现在遇到了类似的问题,一个小时后我注意到问题是我的 USB 集线器,其中连接了这些设备,实际上并没有连接到 PC。
事实上,USB线是连接的,但他们可能由于某种原因接触不好,所以时不时地随机失败。
尝试adb kill-server
停止 adb 并使用另一个命令“adb devices”重新启动它。它应该可以工作,并且应该再次检测到您的设备。(对于那些可以编辑我的帖子的人:任何其他命令都会启动服务器,而不仅仅是 adb start-server,所以至少不要在没有发表评论的情况下进行编辑)