(转载)adb 提示adb server version(31) doesn't match this client(40) 解决办法

有时候我们用adb工具去连接安卓设备,或者模拟器的时候,会提示adb server version(31) doesn’t match this client(40)这样的提示。如图

 

 


提示的字面意思就是当前client版本40,与server端的版本不匹配,当前版本过高引起的。注意,这里的client就是你电脑已经安装的adb程序的版本,而server,也就是你的服务端,将要connect的设备。网上说出现这种不匹配只要下载对应的adb版本重新替换你之前安装的adb就行了,对应的android studio 路径就是你的android sdk 目录的platform-tools文件夹里面的adb.exe程序。

 

 


然而事实上却并非就解决问题。这是因为你的电脑安装了,鲁大师手机助手,360手机助手占用了adb的端口引起的。因为套接字的唯一性(一个套接字只能由 协议/网络地址/端口号 唯一确定 ),一个电脑只能有一个程序关联对应的端口,对于adb对应的端口就是5037。为了验证你的5037端口是否被占用,可以用netstat -ano|findstr “5037” 去查找5037对应的端口号的进程id 也就是pid。
如果有相应的pid,就证明此端口5037有程序占用了。如下图

 

 

果然,5037端口有相应的进程,我们试着去查找相应的进程对应的进程名称,用tasklist |findstr “15828” 结果如下图

 

 

果然,我们找到了一个进程名字,看名字似乎是ludash的拼音缩写开头的,这时候去检查一下你电脑的运行程序,哎呦,还真有一个鲁大师手机助手正在运行,就是它害的我们的adb运行不了,所以我们果断打开进程管理器结束这个进程,如下图。

 

 

单击结束进程把它结束了,然后再运行adb connect server IP 成功运行。
plus 如果不确定要结束哪个进程,还可以右键让状态条显示出pid进程号。如下图

 

 


也可以使用强制结束命令结束这个进程号对应的进程。taskkill /pid 15828 -t -f 。
如果此文章未能解决你的问题,欢迎留言反馈。留言时请说明当前adb版本号,以及运行的环境。需要连接的设备是模拟器还是真机。等。


————————————————
版权声明:本文为CSDN博主「aLLLiyyy」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/aLLLiyyy/article/details/86555228

posted @ 2019-10-21 14:20  癫疯  阅读(892)  评论(0编辑  收藏  举报