总结几种adb运行幺蛾子解决办法,windows系统为例:
1.‘adb’不是内部或外部命令,也不是可运行的程序或批处理文件。
这个简单,没有配置adb的环境变量,如果只用adb,把adb所在路径加入系统环境变量。建议配置ANDROID_HOME变量,很多自动化工具如appium'会要求配置这个变量。
2.adb server is out of date. killing...
这种情况一般是因为当执行输入的adb命令时,系统已经有其它版本的adb在运行了,adb运行会占用5037端口,当运行新adb进程会报错。
而且现在的各种手机助手满天飞,QQ、360都自带迷你版的手机助手,而且他们一般都是自己修改了adb,然后换个名字,比如叫xxadb、xxhelper,都是adb换了个马甲。
解决办法:
先命令行执行where adb,确认PC只配置了一个adb
命令行输入netstat -ano | findstr 5037,得到类似于以下的:
最后一列是进程号,
记录下来,你的电脑可能有多行。
然后再输入 tasklist | findstr
4348 (得到的进程号)
这样就能找到谁在占用了,用任务管理右击这个进程,看看这个adb进程是不是你配置的那个,如果不是,结束删掉,最好把这个adb的主程序(可能是360什么的)也卸载。
3.明明有设备总是提示device not found
1.设备是否开启了USB调试并且连接了PC
2.adb驱动是否正确安装,安装成功后设备管理器应该能看到adb设备。
如果以上确认无误,尝试手动添加设备的硬件ID,步骤如下:
1.打开设备管理器,展开adb设备。
2.右击设备,依次 "属性“—”详细信息“,下拉框选择”硬件ID“
图中标记蓝色的4位16进制数就是VID号,记录下来。
3.进入命令行,切换工作区到当前用户。
命令行执行 pushd %USERPROFILE%
4.将步骤2得到的硬件ID添加到adb_usb.ini
命令行执行 echo 0x1234 >> .android\adb_usb.ini
注:1234是得到的硬件ID,0x是16进制数前缀。
adb_usb.ini也可以放在adb.exe的同级目录下。
4.总是提示device offline。
1.一般情况下,如果设备之前正常,那么adb kill-server之后会恢复正常,再不行把设备和PC都重启。
2.另一个可能是adb版本过低,例如adb1.0.26不能兼容android4.3以上设备,这种情况下可以通过SDK Manager更新下adb的版本。
5.总是提示unauthorized.
1.adb kill-server,断开设备后重试。
2.在设备的usb调试菜单中”撤销USB调试授权“
3.删除%USERPROFILE%\.android目录中的adbkey和adbkey.pub。删除前注意备份,adb kill-server重启下adb。
4.更新adb的版本。
|