解决adb报错: adb server version (31) doesn't match this client (36)

版权声明:本文为博主原创文章。只要评论中留言就可以转载。 https://blog.csdn.net/wenzhi20102321/article/details/80934037

解决adb报错: adb server version (31) doesn’t match this client (36)

一.现象

在cmd命令窗口中,想查看连接的夜神模拟器:adb devices,报错: adb server version (31) doesn’t match this client (36)
如图:

1

这是发现使用Studio 也是没有发现这个模拟器设备。

二.解决方法

解决的办法不难,就是把现在SDK版本的adb.exe,覆盖掉模拟器安装文件中的adb.exe(夜神模拟器的是nox_adb.exe),重启模拟器就能解决问题了。

三.分析过程

这里給大家分析一下这个错误,和具体的解决方法步骤,并且大家学到后,对于类似的错误也能解决(比如其他三方模拟器遇到这个问题)。

从报错信息可以看到,这里报错的提示意思是adb server 版本和client 的版本不一致造成的。

造成这样的问题,一般是由于SDK版本更新了,导致和模拟器的adb版本不一致。

其实调试桥adb是一个程序,就是电脑中可执行的exe文件。
这里adb server版本指的是模拟器中adb程序的版本
client 的版本指的是SDK中adb的程序版本

这里查看SDK的版本是非常容易的,输入命令:adb version
查看模拟器的版本就需要进入模拟器的安装目录中,找到adb所在的目录,在该目录下的命令窗口输入命令adb version。
如图所示:
左边是SDK中adb的版本,右边是模拟器中adb的版本
2
这里能看到SDK中adb的版本是因为之前已经在电脑的高级设置中配置了path的路径:
如图:
3
SDK的adb程序是SDK目录下的platform-tools文件夹内的。

夜神模拟器的adb在哪里呢?
点击夜神程序右键,选中属性,就可以看到夜神程序安装的位置,adb也是在bin这个文件夹下的。
4

替换adb程序:
5
左边是SDK中的adb程序,右边是夜神模拟器的adb程序,把左边的adb.exe复制到右边,并且名字改为nox_adb.exe

这时,重新就可以连接模拟器了,并且Studio中连接也是没有问题的。
6

一般要重启模拟器。才有效。

上面是举例夜神模拟器的,如果海马模拟器出现这种问题也是一样的解决方式:
7
找到SDK的adb程序替换到海马中的adb程序。

四.其他,端口问题

如果模拟器端被占用,有时报错:daemon not running.starting it now on port 5037
意思是5037端口被占用,有可能是酷狗音乐,360程序造成。
网上有很多步骤教是kill掉占用的程序,重启模拟器就可以了。
但是我感觉还是比较麻烦,比较简单的是修改端口:
在电脑高级系统设置,环境变量,添加属性ANDROID_ADB_SERVER_PORT,并设置值(1000-50000)不要太大,也不要太小
如图:

7

不过改变端口后,一般要重启电脑才生效!

到这里就給大家分享了一下adb使用过程可能会遇到的一个小问题。

adb命令在实际实际运用在是非常有用的:
比如从安装/卸载apk、查看手机配置,设置手机属性,启动/关闭某个程序都是可以的
如果有兴趣看adb的命令可以看看:https://github.com/mzlogin/awesome-adb

共勉:期待改变不能带来改变,下定决心、此刻就采取行动,才能改变一切。

猜你喜欢

转载自blog.csdn.net/wenzhi20102321/article/details/80934037
今日推荐