前言
adb连手机的时候经常会出现offline的情况,一般杀掉adb,然后重启adb可以解决。
如果发现不管怎么重启adb都连不上,一直出现offlie的情况,这个时候很大可能就是adb的5037端口被其它应用占了offline
1.如果之前一直都能正常连上adb,突然连不上了,可以用adb devices查看手机连接情况
C:\Users\admin>adb devicesList of devices attached* daemon not running; starting now at tcp:5037* daemon started successfullyemulator-5554 offlineC:\Users\admin>adb devicesList of devices attached emulator-5554 offline
2.发现无法连上,出现offline。可以尝试adb kill-server,然后再用adb device查看
C:\Users\admin>adb kill-serverC:\Users\admin>adb devicesList of devices attached* daemon not running; starting now at tcp:5037 * daemon started successfully emulator-5554 offline
3.上面各种办法尝试了,都无法解决,接下来就要查看5037端口了
查看端口
1.windows上可以用findstr过滤进程(跟linux上grep指令一样),查询结果看最后一项PID,如果是0那就不用管,那最后就有两个PID占用了5037端口,
分别是6532和7200netstat -aon|findstr 5037
C:\Users\admin>netstat -aon|findstr 5037 TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 6532 TCP 127.0.0.1:5037 127.0.0.1:56975 TIME_WAIT 0 TCP 127.0.0.1:5037 127.0.0.1:56976 TIME_WAIT 0 TCP 127.0.0.1:5037 127.0.0.1:56981 ESTABLISHED 6532 TCP 127.0.0.1:5037 127.0.0.1:56988 TIME_WAIT 0 TCP 127.0.0.1:5037 127.0.0.1:56990 TIME_WAIT 0 TCP 127.0.0.1:5037 127.0.0.1:56991 TIME_WAIT 0 TCP 127.0.0.1:56981 127.0.0.1:5037 ESTABLISHED 7200
2.接下来就行查看PID,看是哪个应用占了
tasklist /fi "PID eq 端口号"
C:\Users\admin>tasklist /fi "PID eq 6532"映像名称 PID 会话名 会话# 内存使用========================= ======== ================ =========== ============adb.exe 6532 Console 1 18,432 KC:\Users\admin>tasklist /fi "PID eq 7200" 映像名称 PID 会话名 会话# 内存使用 ========================= ======== ================ =========== ============ emulator-arm.exe 7200 Console 1 884,088 K
3.从结果可以看出,有两个应用占了,一个是adb本身,另外一个是模拟器(emulator-arm.exe),端口发生冲突了,接下来杀掉占用5037端口的进程
taskkill /pid 7200 /f
C:\Users\admin>taskkill /pid 7200成功: 已终止 PID 为 7200 的进程。