如何解决adb devices 端口被占用的问题

在win xp ,win 7 上使用adb时, 越来越多的人出现了 adb devices 命令长时间无响应、adb start-server 失败、eclipse adt初始化时卡在dbms-init上等现象。

它们的根本原因均在于,adb server所使用的5037号端口被占用。


一种常见的解决方法是:找出占用5037端口的程序,然后杀掉它。

使用:netstat -aon | findstr 127.0.0.1:5037 来找到占用5037的进程ID。

使用:kill -f pid 去杀掉它们。(或者在任务管理器 -进程中,结束进程。PS:需要事先在 windows任务管理器-查看-选择列,勾选PID)


我查询了机器上占用5037的进程,是系统svhost,它是一个service host,具体里面跑的什么服务则不得而知。但服务进程每一次开机都会运行。

所以,上述的方法在每次开机都要做一遍,麻烦。所以,这个方法并不是最优解。


另一种方法:

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

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

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


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

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

这时打开一个命令行,输入adb devices,看看是不是在新的端口上启动了啊? 

你可能感兴趣的:(如何解决adb devices 端口被占用的问题)