android studio adb连接不上手机

1. 首先通过CMD启动adb服务。这个时候会提示启动失败。

  E:android-SDK-4.2android-sdkplatform-tools>adb start-server
 adb server is out of date. killing... ADB server didn't ACK * failed to start daemon *

2. 服务启动失败的原因有很多,但一般是端口绑定失败。我们来查看一下端口绑定信息。如图所示,真的是端口绑定出了问题。
 
  E:android-SDK-4.2android-sdkplatform-tools>adb nodaemon server cannot bind 'tcp:5037'

3. 我们来看看哪个服务占用了这个端口。这里面有2个进程占用了这个端口。
 
  E:android-SDK-4.2android-sdkplatform-tools>netstat -ano | findstr "5037"
  TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 5456
  TCP 127.0.0.1:5037 127.0.0.1:1221 TIME_WAIT 0
  TCP 127.0.0.1:5037 127.0.0.1:1222 TIME_WAIT 0

解决方法:先找到adb服务是否绑定端口出现问题,如果真的是绑定端口出现问题,找出该端口被哪个进程占据,最后杀掉这个进程。


在控制台下杀死在5456端口监听的进程

E:android-SDK-4.2android-sdkplatform-tools>taskkill /pid 5456 错误: 无法终止 PID 为 5456 的进程。 原因: 只能强行终止这个进程(带 /F 选项)。 E:android-SDK-4.2android-sdkplatform-tools>taskkill /pid 5456 /f 成功: 已终止 PID 为 5456 的进程。

杀死造成问题的进程,再执行前面的命令

E:android-SDK-4.2android-sdkplatform-tools>netstat -ano | findstr "5037" E:android-SDK-4.2android-sdkplatform-tools>adb nodaemon server
注意:
android stuido 连接真机能运行但是不能调试,通常跟某些手机软件有关。
连不上手机时先查看端口是否能被绑定,使用cmd命令
adb nodaemon server
如果提示:
cannot bind 'tcp:5037'
是端口绑定失败,则继续查看到底是哪个端口给占用了
运行命令:netstat -ano | findstr "5037"  
结果输出:
TCP   127.0.0.1:5037         0.0.0.0:0              LISTENING       8744
TCP   127.0.0.1:5037        127.0.0.1:51531       ESTABLISHED     8744
TCP   127.0.0.1:5037        127.0.0.1:52082       TIME_WAIT       0
...
说明当前端口被pid为8744的进程占用,运行tasklist 查看列表pid为8744的进程
或者直接运行taskkill /pid 8744  或者taskkill /im xxxx.exe
某些流氓软件进程可能关不掉,可以直接卸载。。。
原文地址:https://www.cnblogs.com/qiuzhiwuzhe/p/6122640.html