前言:
adb(Android Debug Bridge)安卓调试桥,简单可以理解为外部连接安卓内部的一个接口,走的是tcp协议。
但是在模拟器上面经常会遇到连不上adb,在此收集一下各种情况,想起来或者遇到了就更新上来,希望帮到大家。
以下是原因及解决方案:
1.ADB未开启
像雷电的话,海外版和某些特殊版本可能默认关闭adb的,需要在设置>其他设置里面将ADB改成开启本地连接。顺带说一下如果是连接按键精灵等需要root的脚本工具时,应同步开启root权限。
另外,雷电模拟器在电脑第一次开机的第一个模拟器可能会连不上,重启一次即可。
2.ADB进程干扰,或者版本过低
出现这种情况一般就是电脑上开启了多个不同的adb版本,比如一个按键精灵手机助手,使用的是32版本的adb,又开启了脚本辅助调用了模拟器自带的34版本,或者开启了投屏工具等,导致adb冲突。
解决办法:关闭投屏、连接手机软件等软件的开机自启,然后重启电脑,并且只开自己想要的软件,也可以把所有使用adb的软件调用的adb.exe、AdbWinApi.dll、AdbWinUsbApi.dll替换成同一个版本的adb。
谷歌官方adb最新版下载直链:https://dl.google.com/android/repository/platform-tools-latest-windows.zip
3.代理软件影响
无论是安卓内部还是电脑端开启了ip代理工具之后,都会影响adb的使用,部分可以设置绕过本地代理的软件,在开启之后是可以重新连接的,但是有的代理软件只要一开启,adb就无法连接,哪怕后续关闭了代理,也一样无法连接需要重启电脑,然后如果是一些电脑端的代理,开启后可能要正常退出并重启电脑才可以连接adb。
解决办法:目前没有可以全部解决的办法,只能通过软件自带的设置去调整看能不能使用,如果不行的话就只能更换软件或者不用adb
4.部分版本的adb本身就有问题
雷电5.0.67、5.0.68、9.0.57、9.0.58等版本,adb均有问题,如果连不上可以尝试卸载重装其他的版本,部分版本可以通过替换adb恢复,部分版本不行,只能换。
5.备份恢复过模拟器,或者修改过模拟器的索引
今天自己遇到了,尝试了一下解决办法也很简单,就是启动模拟器之后,把adb改成关闭,重启一下模拟器,再把adb改成开启本地连接,adb就恢复了。因为adb端口跟模拟器索引是关联的,所以备份恢复过,或者修改了索引导致索引变化,adb就需要这样重新开启一下。
6.安装了Magisk和Shamiko模块
Shamiko模块会导致ro.adb.secure
变成1,也就是开启adb密钥校验,此时adb devices会提示unauthorized,也就是没有权限,部分低版本可能提示offline之类的,部分模拟器上可以手动修改回来,大部分都是无效的,所以最好就是换成狐狸面具,使用Magisk Hide来隐藏root,就不需要Shamiko了,之前就是因为这个问题所以网站的环境包全部换成了狐狸面具。