欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何解决夜神模拟器连不上adb的问题

程序员文章站 2024-03-23 12:02:40
...

今天要搞一个安卓的项目。由于电脑系统是年前刚刚重装的,系统里啥都没有,于是临时安装了一下android studio 2.2,然后又装了一个夜神模拟器。工程打开后,编译通过了,于是打开夜神模拟器,想要通过模拟器进行模拟时,结果AS一直提示找不到模拟器。

如何解决夜神模拟器连不上adb的问题

于是只好重启AS,重启模拟器。结果还是不行。再次重启,貌似可以了。但是,下午再次重启之后,又不行了。反反复复折腾了好几次,基本没几次能顺利连接到模拟器的,每次都要折腾很久。好不容易晚上有点空了,于是静下心来自己研究了一下,看看到底是谁在捣鬼。

1、关掉AS和模拟器,全部重新打开。打开顺序没有要求,随便都行。待二者运行稳定之后,启动cmd命令行,输入adb devices来查看,结果得到如下提示:

C:\Users\leon>adb devices
List of devices attached
adb server version (31) doesn't match this client (36); killing...
* daemon started successfully *
  • 1
  • 2
  • 3
  • 4

看这句话的意思,大概是说目前运行服务器端的adb版本(也就是夜神模拟器的adb版本)比客户端的版本(也就是SDK目录下的adb版本)低,所以系统就把当前运行的服务给杀掉了。可是,仅仅是版本低一点而已,只要不影响使用,你没事杀它干啥?杀了我怎么用呢?这个弱智的adb……

于是,我手动验证了一下:

C:\Users\leon>adb version
Android Debug Bridge version 1.0.36
Revision 0e9850346394-android

C:\Users\leon>nox_adb version
Android Debug Bridge version 1.0.31
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

特别说明:在输入上述命令之前,我已经将SDK下的adb所在目录(C:\Android-SDK_R24.4.1\platform-tools)、以及夜神模拟器的adb所在目录(C:\Users\leon\AppData\Roaming\Nox\bin)加入了系统的环境变量path中。否则,上述命令将无法执行成功!

可以看出,SDK目录下的adb版本为1.0.36,夜神模拟器目录下的adb版本为1.0.31,确实是后者的版本比较低。如此小小的一个版本差异就把这个弱智的adb给整蒙圈了,无法正常运行,导致我遇到了白天的问题。

于是去百度,发现有不少人在支招,有人说是到AS的菜单栏,Tools -> Adnroid -> enable ADB integration;也有人说是,运行cmd命令,cd到夜神安装目录,执行命令”nox_adb.exe connect 127.0.0.1:62001”;还有人说是找到夜神模拟器的安装目录把nox_adb.exe改名成adb.exe,等等等等。

但是,这些问题都是治标不治本,我一个个试过去,都没能彻底解决我的问题。每次一关掉重启,就会再次出现之前的问题。看来,还是得自己动手,才能丰衣足食。

经过一番摸索,最后终于理出了一个解决办法,特记录下来:

1、关掉AS和夜神模拟器。同时去任务管理器里看下,adb.exe以及nox_adb.exe这2个进程有没有在运行?有的话就结束掉。

2、找到SDK的目录和夜神模拟器的目录,将SDK目录下的adb.exe文件,复制到夜神模拟器的目录下,因为夜神模拟器目录下原本的adb文件名字叫做nox_adb.exe,因此复制过去之后也得改名为nox_adb.exe。

3、这样就将AS目录下的adb文件和模拟器目录下的adb文件完全同步了,版本号也一致了。此时,可以使用cmd命令查验一下:

C:\Users\leon>adb version
Android Debug Bridge version 1.0.36

C:\Users\leon>nox_adb version
Android Debug Bridge version 1.0.36
  • 1
  • 2
  • 3
  • 4
  • 5

4、重新打开AS和模拟器,待二者运行稳定之后,点击AS的运行按钮,你会发现模拟器乖乖的躺在列表里等待你的选择。

如何解决夜神模拟器连不上adb的问题

至此,问题彻底搞定!打完收工!