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