解决:adb 提示adb server version(31) doesn't match this client(41) 解决办法

Posted tc310

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决:adb 提示adb server version(31) doesn't match this client(41) 解决办法相关的知识,希望对你有一定的参考价值。

原文:https://blog.csdn.net/gufenchen/article/details/91383397

一、有时候我们用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 成功运行。

我的是mibileLoader不能被禁用,删除了还会恢复, 一直占用5037端口, 导致手机和电脑无法连接.
通过adb 调试手机都没办法进行了, 卸载360了. 

二、如果上面的还是不能解决:

每当我尝试运行时adb devices:

$ adb devices
* daemon not running. starting it now *
* daemon started successfully *
List of devices attached
HT0ANRV05740 device
它说守护进程没有运行并重新启动守护进程。

然后,如果我再次运行adb设备,它会做同样的事情 -

$ adb devices
adb server is out of date. killing...
* daemon started successfully *
List of devices attached
HT0ANRV05740 device
然后,如果我再次运行它,它再次做同样的事情 -

$ adb devices
adb server is out of date. killing...
* daemon started successfully *
List of devices attached
HT0ANRV05740 device
从网上查到,需要在命令行运行以下shell命令获取deviceName

adb devices -l
然而输入回车后,出现以下错误

C:\\Users\\wuhuo>adb devices -l
adb server is out of date.  killing...
ADB server didn\'t ACK
* failed to start daemon *
error:
朋友叫我输入adb start-server,结果是这样婶儿的

adb server is out of date.  killing...
ADB server didn\'t ACK
* failed to start daemon *

网上查了是因为端口有冲突,有其他进程占用了5037这个端口。(可以用adb nodaemon server 这个命令查看端口)


解决方法:

用以下命令查看5037端口号的应用

netstat -ano | find "5037"
从左至右依次是连接类型、本地地址:端口、外部地址:端口、连接状态、进程的PID
个人理解,应该杀掉的是本地端口为5037的那个进程。(20170319注:看过多个别人杀进程的帖子,证实想法正确)

看最后一列获得进程的PID,常规方法是使用以下命令杀掉它:

taskkill /pid xxx
但对于我的情况来说,杀完再find,它又出现了,喵喵喵?而且再细看一下,这些进程全部都是genymotion目录中tools文件夹下的adb.exe,按我的理解不该杀啊。

(20170320注:实际上很多软件都包括adb.exe,像豌豆荚及各种手机助手。如果它们启动了,也会占用这个端口。信息来自网上找到appium视频教程)

因为已经深夜了,第二天继续研究。今日查到stackoverflow上一个帖子:

http://stackoverflow.com/questions/5092542/adb-server-is-out-of-date

答主真是一针见血。。把genymotion的adb设置为自己的adb之后,问题解决了。

Genymotion默认用的是第一个选项,现改为custom,然后选择自己的sdk文件夹

 

 


选择Setting,

找到ADB,点击

 

 

 

 

 

 

选择第二个:Customer Android SDK tools:,选择SDK的文件夹,

 

 

 

再输入adb devices -l,

 

 


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

以上是关于解决:adb 提示adb server version(31) doesn't match this client(41) 解决办法的主要内容,如果未能解决你的问题,请参考以下文章

appium 连接夜神模拟器提示adb版本不匹配的解决方法(adb server version (36) doesn't match this client (41); killing...

手机连接电脑提示出现adb错误是怎么回事,应该怎么解决

Android 检查手机和电脑连接的时候,执行 adb devices后,提示adb server is out of date. killing..

adb server version (31) doesn’t match this client (36); killing… 的解决方法

Android adb 提示adb server version(x) doesn‘t match this client

Android Studio - Unable to create Debug Bridge: Unable to start adb server: adb server version (32)