adb 连接天天模拟器端口5037被占用问题的解决

初试android adb工具,就遇到了默认的5037端口被占用问题, baidu了许久, 有介绍杀死占用端口进程方法,也有介绍更改adb端口方法,但都不奏效.

1. 先说下前2种方法不能解决问题的原因

     杀进程,大部分进程都可以直接用windows任务管理器停止,停止后便可释放占用的端口,但有些进程要么是不能杀死,要么是杀不死(结束进程后又会自动复活)。查找端口占用的方法用命令netstat -aon | findstr "5037" 找哪个进程占用了该端口,我遇到就是杀不死的进程svchost.exe, 想必大家都很熟悉该进程了, 从windows97开始svchost扮演了非常重要的角色. svchost是负责挂载负责的进程. 刚一结束svchost过两秒又发现有新的PID占用了5037端口,无奈既然杀不掉进程只好采取网上介绍的修改端口方法吧。大部分介绍用windows系统变量方式设定端口,即在系统环境变量新增 ANDROID_ADB_SERVER_PORT,然后设定一个空闲的端口即可。但又给我出个难题,设定后不起作用,执行adb shell时还是提示5037端口绑定失败,又打开adb strace(ADB_TRACE=ALL),原来天天模拟器提供的adb程序是经过其重新编译的,不会使用环境变量ANDROID_ADB_SERVER_PORT,但可以用adb -P 的方式在启动时修改端口,我修改为9999,但又提示9999绑定失败,因为天天的adb经过修改,这里不在深究为什么绑定9999端口会失败。

     好了,大半天过去了,也没搞定,我得思考别的解决方案了。

2. 再试下更改端口的方案。于是下载了andriod 正版adb,这回在9999端口上启动成功了,但是又找不到虚拟设备了,换了靠谱助手自带的adb也是同样的问题,找不到设备,看来对于这种模拟器引擎换端口方案恩定不能解决问题了。还得回到前面,想办法干掉占用5037端口的svchost进程。

前述。svchost主要是负责挂载服务的,接下来要查一下这个杀不死的服务是哪个一个,用tasklist /svc | findstr PID查找服务,发现是一个名为 log and alerts的服务占用了此端口,这个服务应该不是必须的,于是去注册表里直接将此表象干掉,重起电脑后占用5037的svchost进程不在启动。 至此,启动天天模拟器,再启动adb shell 成功了!

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
adb5037端口是Android Debug Bridge(ADB)用来进行和设备通讯的端口。在使用ADB进行开发、调试时,经常会出现ADB无法连接设备的情况,而其中一个常见的原因就是adb5037端口被自己占用了。 造成adb5037端口被自己占用的原因主要有以下两种情况: 一种情况是在开发过程中由于程序错误或者其他意外原因,导致ADB服务没有正常关闭。这会导致下一次再次运行ADB服务时,只有新的ADB服务的日志记录,而旧的日志仍然在占用这个端口。这样就会导致ADB连接失败,提示“ADB服务器版本不匹配”的错误提示。 另一种情况是由于其他程序占用了这个端口。有时候在电脑上运行的某些程序,可能会占用adb5037端口,比如虚拟机、Docker、Genymotion等。 针对这个问题,我们可以采取以下解决方案: 1. 关闭所有运行的ADB服务 在终端中输入“adb kill-server”命令可以关闭当前运行的ADB服务。如果需要,可以重启ADB服务并重新运行ADB的应用。 2. 检查电脑上是否有其他程序占用adb5037端口 使用“netstat -aon”命令可以查看当前电脑上所有占用端口的程序,如果查到adb5037端口占用,可以通过关闭其他占用端口的程序或重启电脑来释放此端口。 3. 修改ADB服务默认端口 可以在系统环境变量中添加“ADB_SERVER_PORT”变量来修改ADB服务默认端口。如果需要修改,可以在终端中输入“export ADB_SERVER_PORT=xxx”来修改端口号,xxx代表任意一个你想要设置的端口号。 总之,解决adb5037端口被自己占用问题可以提高开发效率,提高开发环境的健壮性和稳定性。在开发中,遇到ADB连接设备出现问题时,不妨先考虑这个问题是否是由于本地占用了设备接口导致的错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值