安卓设备调试工具adb在列出设备和其他命令时停滞不前

8
当我尝试从终端运行adb命令,特别是adb devicesadb kill-serveradb start-server时,它会挂起,我需要输入CTRL+C退出进程。无法将APK部署到物理或虚拟设备上。某些东西阻止了adb进程/端口。我已卸载了反病毒软件并禁用了防火墙。
在下面的示例中,我键入adb devices,终端显示连接的设备列表,然后挂起。

enter image description here


请问您能否分享一下设备管理器的图像,当设备通过USB连接到电脑时? - be_good_do_good
设备管理器:http://imgur.com/Exk5E4q - Gustavo Piucco
6个回答

16

adb会绑定到TCP端口5037,如果该端口已被其他进程占用,您可能会发现任何adb命令都无法执行并且一直处于挂起状态。

  • 使用"netstat -aon | more"命令查找占用5037端口的进程
  • 终止占用5037端口的进程,然后您的adb命令就可以正常工作了。

6
此命令在Mac上无法执行。我收到了netstat: illegal option -- o的错误信息。 - Matt
最近遇到了这个问题,我发现有两个adb进程在监听5037端口。我将它们都杀掉后,重新运行了adb devices命令。命令重新运行了ADB守护进程,之后一切正常。 - undefined
在OSX上,你可以使用lsof -i tcp:5037命令来查看使用该端口的进程。 - undefined

1

我也遇到了类似的问题,我的Android驱动程序没有正确安装。

您需要安装Google USB驱动程序,然后:

  1. 进入控制面板主页

  2. 点击“设备管理器”链接。

  3. 在设备管理器中找到您的Android设备(其他设备)。 然后右键单击它并选择“更新驱动程序软件”。
  4. 选择“浏览我的计算机以查找驱动程序软件”。
  5. 选择“让我从计算机上的设备驱动程序列表中选择”。
  6. 选择“显示所有设备”。
  7. 按“有磁盘”按钮。
  8. 输入Google USB驱动程序的路径。 通常位于以下目录中: C:\ Program Files(x86)\ Android \ android-sdk \ extras \ google \ usb_driver
  9. 从设备类型列表中选择“Android ADB接口”。
  10. 通过按“是”确认驱动程序的安装。 并安装它。

完整教程在此处:http://visualgdb.com/KB/usbdebug-manual/ 希望能解决您的问题!


0

就像@par所说的那样,要终止进程,只需查看它们的PID号码,然后使用“taskkill /PID(它们的pid)/f”来杀死它们,并在那里放置PID号码,/f是强制终止。


0

尝试:

Step1: Open android studio.
Step2: Choose Android device monitor.
Step3: At the device window: choose triangle icon then choose reset adb. (Try to repeat 2-3 times if it is not show some devices)

在 Android 设备监视器中,设备在线,我可以截屏并且工作正常,但当我尝试进行调试时,没有设备出现在部署列表中。哈哈 - Gustavo Piucco
2
请在grade文件中检查minSdkVersion。可能是您设备的API版本较高。 - sonnv1368

0

对我有效的方法是杀死服务器,然后重新启动。

虽然需要一点时间,但每次都有效。

杀死命令adb kill-server

启动命令adb start-server

杀死命令可能需要一分钟左右,但它会起作用。

之后,您可以运行其他adb命令。


看起来在你的情况下adb有一些问题 - 通常kill/start需要几秒钟的时间。 - Myroslav

0

除了检查更新的USB驱动程序之外...

在Windows中,当使用带有硬盘和/或其他输入设备的USB集线器时,我遇到了卡顿的情况。根据我的特定硬件设置,要么我的USB硬件很差(也许是我的最新USB集线器很差),要么USB控制器的USB驱动程序很差,或者我只是遇到了Windows平台上USB的一些自然限制(至少在与Android硬件在Windows上的相关性方面如此)。

编辑:我特别提到了USB3。我还插了一个USB3非电源集线器到一个USB2端口——该端口连接我的鼠标、一个硬盘和我的Android设备——我后来不得不重新考虑什么插在哪里以确保adb正常工作。

最后一个有用的Windows提示是,如果您已经连续几天或几周没有重启,请重新启动并开始全新的操作,当然,Windows更新(通常不会影响我的Android硬件工作)。这样做可以解决其他应用程序使用端口5037的问题(如@par所述)。

当我尝试批量执行多个“adb pull”命令时,我也遇到了问题。我一直在努力设置一个选择性拉取文件夹列表的方案,这些文件夹没有嵌套,因此我知道不能只用一个命令拉取(这是我的自定义备份解决方案的一部分)。有时我发现我必须一次拉一个文件夹。这更可能与我的USB问题有关,而不是adb问题。

编辑:根据您使用的Win10版本,您可能需要通过设备管理器手动启动驱动程序更新检查。最近我就是通过这种方式成功更新了Android驱动程序。到目前为止,通过重新考虑插入位置和进行更新,情况最近略有改善。


欢迎来到StackOverflow!你是否有任何示例/文章链接可以进一步说明你回答中描述的问题? - Matthew Thurston
很抱歉,目前没有,只是我个人的硬件经验。我的两台笔记本电脑都有一些有趣的USB3问题。通常情况下,一个特定的端口不稳定且不可靠,而其他USB3端口则不会出现这种情况。根据我的经验,与Android硬件相关的USB3端口和电缆通常无法像USB2端口和电缆那样稳定工作。我确实会检查驱动程序和BIOS更新,其中一台笔记本电脑实际上有一个今天发布的BIOS更新!这是多大的几率啊...? - Jeb Dude
尽管情况不容乐观,但我最近的BIOS更新(实际上是今天的日期)让我能够同时使用ASUS R510IU上的两个USB3端口。不幸的是,我找不到详细的更改日志,但在此更新之前,我甚至无法将一个硬盘驱动器插入到两个USB3端口中的任何一个,只有一个特定的端口可以使用。它们都无响应。现在它们可以同时插入并进行文件传输。 - Jeb Dude

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接