ADB启动报错 || 谁抢了我的ADB

最近在学习monkey在Android自动化测试中的使用,下面简单介绍一下用到的工具。一般情况下Android开发都会使用一些辅助工具比如Android Studio、Eclipse等。我从一开始的初衷是研究一个AutoMonkey For Android (这个项目是github上的大神的,我会在文章后面给出链接)工具的使用,所以仅仅安装了必须的Android SDK,里面包含需要用到的ADB(Android Debug Bridge)工具和AVD(Android Visual Device)。就因为没有安装Eclipse在我遇到ADB启动报错时,所有找到的问题答案都不得要点。

ERROR MESSAGE

error:could not install smartsocket listener:cannot bind to 127.0.0.1:5037:通常每个套接字地址(协议/网络地址/端口)只允许使用一次。(10048)
This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information.

很明显,大意是说,5037端口被其他进程被占用。但是刚接触ADB的小白,完全懵逼。在网上查了资料,发现不管是国内开始国外的回答都提到是genymotion的SDK配置与Android Studio或者EClipse的配置不一致,导致进程切换的问题。(网上回答样式很多,基本上离不开这个SDK配置的原因)。还有的说是因为版本太低,要升级,这个有点扯。翻看了几十多篇博客和n个人的回答之后,找到一篇非常靠谱的,文后附链接。

原因:

5037端口被其他进程占用

解决步骤:
  • netstat -ano | findstr 5037 :查找占用5037端口的进程PID


    查看端口5037.png

    可以看到进程ID(PID)为 5144

  • netstat -ano | findstr 5144:查看PID对应进程


    PID对应进程.png

    如图可以看到是PPAdbServer.exe,这是我的豌豆荚,在连接手机时使用豌豆荚查看设备,占用了5144端口,而豌豆荚中会调用系统的ADB命令,导致5037端口一直监听5144端口,造成了占用。

  • taskfill /f /im PPAdbServer.exe:杀死该进程


    kill.png

    也可以免去第三步,在第二步就根据PID杀死进程就好了。

  • adb devices : adb命令查看连接的设备


    adb.png

可以看到已经没报错了。我没有连接手机,所以设备列表是空的

链接奉上

AutoMonkey For Android 项目 github地址:

*https://github.com/wangyunshuai/monkey_android

靠谱的博客:

http://www.cnblogs.com/dazhao/p/6534128.html
这篇博客讲解了多种报错的解决方法,值得收藏!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 打开模拟器的时候,报错 在Terminalkill&start还是不行 adb kill-server & sta...
    Domon_Lee阅读 5,919评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,659评论 25 709
  • (Ps:之前有写“好好说话”这个主题,这个主题还未完成,还会继续,预计还有两到三篇;本篇是对这个主题的技巧型补充,...
    罗志琦阅读 6,298评论 1 2
  • 心情好低落。 这一年又白忙活了。 一个月不到的时间,三万块钱就打水漂了,泡子都没鼓一个。 我是哪根筋不对,鬼死神拆...
    黄慧云yun阅读 1,742评论 0 0
  • 无力下楼买一杯水浇灭饥渴 无力翻动一本书任何一页纸张 无力抱怨淫雨霏霏来自天气预报 我渴望星月却难忍太阳 无力做随...
    一页北风阅读 1,046评论 0 3