adb start-server 失败的解决方法

当adb无法使用时,可能是由于电脑上的手机助手软件占用了adb的默认端口5037。通过运行`adb nodaemon server`检查端口,发现被sjk_daemon进程占用。解决方法包括使用任务管理器结束该进程或在命令行中使用`taskkill`命令。执行后,adb devices命令应能正常工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用adb时,经常遇到adb不能使用的情况,大多情况是因为电脑本身安装了手机助手之类的(例如,应用宝,豌豆荚,百度手机助手等)

adb包含文件

那些手机助手通常也会包含AdbWinApi.dll文件,这就造成了启用adb时端口会被占用。
首先我们可以使用
adb nodaemon server
查看当前adb端口号

C:\Users\di.qian>adb nodaemon server
netstat -ano | findstr "5037" 
tasklist | findstr "8516"
tasklist
taskkill /f /pid 963

错误信息:

C:\Users\di.qian>adb devices

adb devicesadb server is out of date.  killing...
ADB server didn't ACK* failed to start daemon *error: unknown host service
C:\Users\di.qian>adb start-server
* daemon not running. starting it now on port 5037 *
CreateProcess failure, error 2
* failed to start daemon *
  1. 原因:

adb的端口(5037)被占用了。

在这个文章里,详细说明了adb的原理及其源码分析。

  1. 解决方法:
    在cmd窗口:
C:\Users\di.qian>adb nodaemon server
cannot bind 'tcp:5037'

然后用下面的命令查看5037端口

C:\Users\di.qian>netstat -ano | findstr "5037"
  TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       8516
  TCP    127.0.0.1:5037         127.0.0.1:59163        TIME_WAIT       0
  TCP    127.0.0.1:5037         127.0.0.1:59164        TIME_WAIT       0
  TCP    127.0.0.1:5037         127.0.0.1:59167        TIME_WAIT       0
  ......
C:\Users\di.qian>tasklist | findstr "8516"
sjk_daemon                        8516 Console                    1     3,071 K

这里可以看出是 sjk_daemon进程占用了adb的端口
查看任务列表

C:\Users\di.qian>tasklist
Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0         24 K
System                           4 Services                   0      1,128 K
sjk_daemon                     963 Console                    1      3,071 K
tasklist.exe                  1260 Console                    1      5,856 K

再kill掉这个进程:

C:\Users\di.qian>taskkill /f /pid 963

如果这个命令提示无权限,那么,可以去windows的“任务管理器”中“进程”那个窗口,找到这个进程,将它杀掉。

再运行adb devices,就没有问题了。

C:\Users\di.qian>adb devices
4df7f482396a301d        device 

附:
关于5037端口,可以参考其他博客的 一篇文章:

http://blog.youkuaiyun.com/liranke/article/details/4999210

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值