安卓开发过程中,很多小伙伴都是用模拟器进行测试,但是,经常碰到模拟器检测不到,adb异常等问题,难受有木有。
前段时间,因为没有先关闭模拟器直接关机后,后来就发生了模拟器闪退的问题,晕菜,是真的难受,百度上混了几天,终于,将问题转化成了经验。下面稍微总结总结。
一、adb问题常用解决方法
若是模拟器启动正常,但是adb检测不到模拟器,我们给他一套不解释连招,下面教大家几招基础拳法。
1.基础拳法一:循环自动检测
下图那个小按钮,点它,狠狠的点它,然后点运行,看能不能检测的到模拟器,如此循环它六七次,看一下它有没有脾气。
2.基础拳法二 :手动连接
一般安卓自带的模拟器基本上是能自己检测的到的,实在不行,我们手动连接试一试。
既然模拟器正常打开,我们看一下他的连接的 ip 如下图所示
通过 命令行
adb connect IP
来尝试手动连接 ,我这里使用的是vs 模拟器 其他模拟器应该类似。
adb运行正常的话,在如下终端是可以运行adb命令的,如果adb不正常,试着检查一下jdk sdk 的环境是否配置正确了。如果环境也是对的,但是运行不了adb命令,重新下载安装一下adb吧,也不大,就几M。百度就有
3.基础拳法三:重装 adb
没错,要是adb本来就是坏的,那我们前两招就没有威慑力了,那还玩个锤子。
没那么容易结束,我们尝试用 adb kill-server 和 adb start-server 这两招来解决问题,这两招是网络上各位大侠教的最常用的一招,虽然经常性然并软,但是可以试一试。好吧要是重启adb之后还是不行,我们重新安装一下adb,网络百度一下就有adb.exe下载。基本上,这三招,一些简单问题是没有问题的。
然而还有一个adb默认端口被占用的问题,默认端口5037 被某无良程序占有,怎么办找到它,解决它。
4.The end punch
打开cmd运行如下命令 看是哪个不长眼的占用了这个端口。记住它,然后在任务管理器中杀了它(非adb进程)。然后,再尝试启动一下你的adb。重复上面的农夫三拳。
netstat -aon|findstr 5037
二、模拟器问题
既然是模拟器出了问题,那就重新安装模拟器,或者换一个模拟器吧,基本上打开模拟器的时候闪退,都是模拟器的问题
开玩笑,我怎么可能是那种做事不负责的人。
我们通过我们的sdk manager 重新安装一下我们的tools工具
如下图所示,取消√卸载,然后再通过点击让他重装,反正我是这样把我的自带模拟器拯救回来了。☺▁▂▃▄▅▆▇█
最后,实在不行可以试下夜神模拟器,大部分情况下,先运行安卓 studio 在打开夜神可以自动检测到,如果检测不到尝试用
adb connect IP 命令来手动连接。
再补充一下,有时候,adb、模拟器(真机)都是正常的但仍然检测不出来,这个时候基本上是被电脑防火墙给屏蔽了,可以设置允许应用通过防火墙(adb等),当然,我试过,单个允许通过防火墙有时候并没有屌用,不知道是被墙了哪一个还是防火墙发了什么神经。what ever,我的做法一般是关闭防火墙,等检测出模拟器再打开防火墙。简单粗暴。一般也不是次次需要这样,弄了一次后,下一次就可以正常检测出来了。
再再补充一下,安卓10.0模拟器会出现启动黑屏无反应问题,此时需更新tools版本。
unable local adb 问题
最近,新买了电脑,下载studio,模拟器又不对劲,提示 unable local adb,待gradle下载完毕后,卸载 platForm-tools ,重启studio,再重装工具解决。