结束 adb.exe 进程后仍然提示“adb server is out of date.” 解决办法

本文介绍了当使用adb shell命令登录安卓设备失败时的一种解决方法。主要原因是端口被其他进程占用,通过查找并关闭占用5037端口的PhoneFlashTool软件解决了问题。

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

【问题描述】

        1、使用命令 adb shell 无法登录安卓设备,提示如下:

        adb server is out of date.  killing...
        * daemon started successfully *
        ** daemon still not running
        error: cannot connect to daemon


        2、使用 netstat 命令发现占用 5037 端口的进程就是 adb.exe,用 taskkill 命令杀掉进程后,该进程会立即自动重启并抢占端口。这导致我无法从控制台用 adb 命令登录设备。


【解决办法】

方法一:

        从头写一遍操作步骤,这应该是遇到这个问题的通用解决办法。

        1、在控制台下查看 adb 工具要使用的端口号,命令为 adb nodaemon server

        发现端口号是 5037,如下:

                

        2、查找占用该端口的进程,命令为 netstat -ano | find "5037"

        发现是 PID 为 6580 的进程占用了 5037 端口,如下:

                

        3、一般情况下这时使用 taskkill /pid 6580 /f 命令就可以杀掉进程释放端口,但本文开篇说了这招没起作用。所以这里介绍一个更稳妥的办法:

        先打开 任务管理器,找到 PID 为 6580 的进程(如果没看到 PID 这列信息,需要点击 “查看 -> 选择列 -> PID 进程标识符”),右键单击进程名调出菜单,再单击 “打开文件位置”。如下:

                

        这时会跳转到启动该进程的可执行文件所在的文件夹(如果你对 cmd 命令比较熟悉的话,也可以使用 wmic process 命令查看进程的路径),发现是一个叫 “Phone Flash Tool” 的软件附带的 adb 工具占用了端口,如下图。这是一款用于烧写 image 的软件,我确实刚刚使用了她并且没有关闭。因为她有守护进程存在,所以我使用 taskkill 命令杀死她启动的 adb.exe 进程后,守护进程会立即检测到并重启进程。

                

        关闭这个程序后,就又能正常在控制台使用 adb 工具登录设备了。如下:

                

        类似的,端口占用也有可能是你安装的一些 手机助手类 的软件导致的,比如 百度xx、腾讯xx、360xx 等。同样,关掉相应主程序就可以解除端口占用了


方法二(没有验证):

        修改 adb 工具的端口。新建一个名字为 ANDROID_ADB_SERVER_PORT环境变量,她的值就是 adb 的端口,给她赋一个没有被其他程序使用的端口值,比如 12345。

        

【扩展阅读】

        [1] 《修改adb端口的方法》


  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值