解决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端口被占用
执行 netstat -aon|findstr 5037 查看占用端口的pid
执行 taskkill /pid 6572 /f 来杀死该进程后。再次连接手机。执行 adb devices -l
依然报错,跟上面的错误一样,5037端口依然被占用。
查看 占用 5037 端口 的pid 。 现在PID是 6000.
查看 占用 5037 端口 PID进程 为6000 的程序 。一直都是sjk_daemon.exe在占用着 5037.且该进程显然不能杀死。 这个进程是 金山手机助手的某个程序。我写在金山助手依然在占用5037 。卸载 金山手机助手 或者卸载金山毒霸都没有用。
最后 我就赋予了 adb的一个新的端口号。就是最上面的第二种方法。
自己配置 adb server 端口,使用一个生僻的值。
很简单,只要在系统环境变量中定义 ANDROID_ADB_SERVER_PORT 的值即可。
最好选择一个5位数的端口号(10000 ~ 65535),不易重复。
win下只要在环境变量中增加一个ANDROID_ADB_SERVER_PORT ,值填你自己定义的端口。
linux下只要 export $ANDROID_ADB_SERVER_PORT = 自定义端口,即可。