一、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
然后在任务管理器中结束PID对应的进程
1.1 配置adb环境变量
在系统变量path中添加SDK下的对应路径:
D:SDKplatform-tools; D:SDK ools
1.2 关闭系统防火墙
1.3 删除*.lock文件
先kill进程qemu-system-x86_64.exe,然后删除
C:Usersc00369690.androidavdNexus_5X_API_28_x86.avd下的*.lock文件。
方式二
自己配置 adb server 端口,使用一个生僻的值。
很简单,只要在系统环境变量中定义 ANDROID_ADB_SERVER_PORT 的值即可。
最好选择一个5位数的端口号(10000 ~ 65535),不易重复。
win下只要在环境变量中增加一个ANDROID_ADB_SERVER_PORT ,值填你自己定义的端口。
linux下只要 export $ANDROID_ADB_SERVER_PORT = 自定义端口,即可。
二、模拟器问题
既然是模拟器出了问题,那就重新安装模拟器,或者换一个模拟器吧,基本上打开模拟器的时候闪退,都是模拟器的问题
开玩笑,我怎么可能是那种做事不负责的人。
我们通过我们的sdk manager 重新安装一下我们的tools工具
如下图所示,取消√卸载,然后再通过点击让他重装,反正我是这样把我的自带模拟器拯救回来了
最后,实在不行可以试下夜神模拟器,大部分情况下,先运行安卓 studio 在打开夜神可以自动检测到,如果检测不到尝试用
adb connect IP 命令来手动连接。