zoukankan      html  css  js  c++  java
  • adb shell提示“adb server is out of date.” 解决方法

    【问题描述】

    1、打开运行:window+R,输入cmd回车

    2、使用命令 adb shell 无法登录安卓设备,提示如下:

    adb server is out of date.  killing...

    * daemon started successfully *

    ** daemon still not running

    error: cannot connect to daemon

    3、使用 netstat 命令发现占用 5037 端口的进程就是 adb.exe,用 taskkill 命令杀掉进程后,该进程会立即自动重启并抢占端口。

    【问题前提】

    已配置AndroidSDK工具包adb,配置方法:http://jingyan.baidu.com/article/17bd8e52f514d985ab2bb800.html

    【解决办法】

    方法一:(先尝试关掉91、360等手机助手)

    1、在控制台下查看 adb 工具要使用的端口号,命令为adb nodaemon server

    发现端口号是 5037,如下:

     
     

    2、查找占用该端口的进程,命令为netstat -ano | find "5037"

    发现是 PID 为 6580 的进程占用了 5037 端口,如下:

     
     

    (补:cmd内容比较多不能查看上一页,可以定向导出文件,格式:XXX>>test.txt

    如:netstat -ano | find "5037">>adbtest.txt,然后开始中搜索adbtest.txt,查看详细文档)

    3、一般情况下这时使用 taskkill /pid 6580 /f 命令就可以杀掉进程释放端口,但本文开篇说了这招没起作用。所以这里介绍一个更稳妥的办法:

    先打开任务管理器,找到 PID 为 6580 的进程(如果没看到 PID 这列信息,需要点击 “查看 -> 选择列 -> PID 进程标识符”),右键单击进程名调出菜单,再单击 “打开文件位置”。如下:

     
     

    这时会跳转到启动该进程的可执行文件所在的文件夹(如果你对 cmd 命令比较熟悉的话,也可以使用 wmic process 命令查看进程的路径),发现是91助手占了adb的窗口,我确实刚刚使用并且没有关闭。因为他有守护进程存在,所以我使用 taskkill 命令杀死她启动的 adb.exe 进程后,守护进程会立即检测到并重启进程。

    关闭这个程序后,就又能正常在控制台使用 adb 工具登录设备了。如下:

     
     

    类似的,端口占用也有可能是你安装的一些 手机助手类 的软件导致的,比如 百度xx、腾讯xx、360xx 等。同样,关掉相应主程序就可以解除端口占用了。

    方法二(没有验证):

    修改 adb 工具的端口。新建一个名字为ANDROID_ADB_SERVER_PORT的环境变量,她的值就是 adb 的端口,给她赋一个没有被其他程序使用的端口值,比如 12345。



    作者:嗪小嗪
    链接:https://www.jianshu.com/p/c76255fdaf5a
    来源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    《把时间当作朋友》后记
    《把时间当作朋友》 李笑来
    chrome 和 IE 下 new Date()的不同 导致ajax出错
    ruby vim环境设置
    ASP.NET UserControl传递参数
    win2008 IIS7 ASP 的 405 错误
    天使的微笑——《天使爱美丽》
    随机点击表中某一行
    页面刷新方法
    随机选择下拉列表中的值
  • 原文地址:https://www.cnblogs.com/bugua/p/10949242.html
Copyright © 2011-2022 走看看