解决ADB端口占用问题


方式一
5037为adb默认端口,若5037端口被占用,
查看占用端口的进程PID
C:\Users\wwx229495>netstat -aon|findstr 5037
  TCP   127.0.0.1:5037        0.0.0.0:0            LISTENING      3676


通过PID查看所有进程
C:\Users\wwx229495>tasklist /fi "PID eq 3676"


映像名称                    PID 会话名            会话#       内存使用
========================= ======== ================ =========== ============
svchost.exe                3676 Services                0    13,800 K


杀死占用端口的进程
C:\Users\wwx229495>taskkill /pid 3676 /f
成功: 已终止 PID 为 3676 的进程。


方式二
自己配置 adb server 端口,使用一个生僻的值。

很简单,只要在系统环境变量中定义 ANDROID_ADB_SERVER_PORT 的值即可。
 

最好选择一个5位数的端口号(10000 ~ 65535),不易重复。
 

win下只要在环境变量中增加一个ANDROID_ADB_SERVER_PORT ,值填你自己定义的端口。
 

linux下只要 export $ANDROID_ADB_SERVER_PORT = 自定义端口,即可。

vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
今天用adb连接手机。执行
adb devices -l  命令。
提示 如下图所示 5037端口被占用

adb端口被占用_环境变量

执行 netstat -aon|findstr 5037  查看占用端口的pid

adb端口被占用_android_02

执行 taskkill /pid 6572 /f  来杀死该进程后。再次连接手机。执行 adb devices -l

依然报错,跟上面的错误一样,5037端口依然被占用。

adb端口被占用_环境变量_03

查看  占用 5037 端口 的pid  。  现在PID是 6000.

adb端口被占用_android_04

查看 占用 5037 端口   PID进程 为6000  的程序 。一直都是sjk_daemon.exe在占用着 5037.且该进程显然不能杀死。 这个进程是 金山手机助手的某个程序。我写在金山助手依然在占用5037 。卸载  金山手机助手 或者卸载金山毒霸都没有用。

adb端口被占用_端口号_05

adb端口被占用_端口号_06

adb端口被占用_环境变量_07

最后  我就赋予了 adb的一个新的端口号。就是最上面的第二种方法。

自己配置 adb server 端口,使用一个生僻的值。

很简单,只要在系统环境变量中定义 ANDROID_ADB_SERVER_PORT 的值即可。
 

最好选择一个5位数的端口号(10000 ~ 65535),不易重复。
 

win下只要在环境变量中增加一个ANDROID_ADB_SERVER_PORT ,值填你自己定义的端口。
 

linux下只要 export $ANDROID_ADB_SERVER_PORT = 自定义端口,即可。