使用adb调试安卓设备,端口遭其他程序占用,怎么解决

Android 码拜 10年前 (2015-04-23) 1113次浏览 0个评论
 

最近用VC做个小程序,其中有一些功能是要通过adb来连接插在PC上的安卓设备的,但是通过adb.exe来发送命令,有时会出现这样的提示“adb server is out of date.  killing…ADB server didn””t ACK* failed to start daemon *error: unknown host service” 后来找了下原因,是因为adb的端口被其他程序给占用了,所以  每次都只能手动通过任务管理器找到一些会跟它冲突的进程(比如腾讯的tadb.exe进程),把它强制结束掉  请问大家,能不能有个好的解决方案提供啊。不可能每次我运行程序都得先手动去结束那些进程吧,而且我也不可能知道所有会跟它冲突的进程。要是这个不解决,那我的程序不就完全废啦?! 望大家帮个忙

使用adb调试安卓设备,端口遭其他程序占用,怎么解决
2分
首先它跟谁冲突这个可以通过dos命令来查。
另外如果你安装一个豌豆荚之类的东西,他们会先帮你把这个端口给占据,那么你就可以正常来用了。其他的程序就不可能再使用这个端口了。
最后提醒一下,一把你只要不把手机USB连接电脑,腾讯的tadb就不会启动
使用adb调试安卓设备,端口遭其他程序占用,怎么解决
2分
adb kill-server
adb devices

或者可以考虑每次连接时都创建新的adbdebugbridge

使用adb调试安卓设备,端口遭其他程序占用,怎么解决
2分
引用 1 楼 AA5279AA 的回复:

首先它跟谁冲突这个可以通过dos命令来查。
另外如果你安装一个豌豆荚之类的东西,他们会先帮你把这个端口给占据,那么你就可以正常来用了。其他的程序就不可能再使用这个端口了。
最后提醒一下,一把你只要不把手机USB连接电脑,腾讯的tadb就不会启动

差不多

使用adb调试安卓设备,端口遭其他程序占用,怎么解决
引用 1 楼 AA5279AA 的回复:

首先它跟谁冲突这个可以通过dos命令来查。
另外如果你安装一个豌豆荚之类的东西,他们会先帮你把这个端口给占据,那么你就可以正常来用了。其他的程序就不可能再使用这个端口了。
最后提醒一下,一把你只要不把手机USB连接电脑,腾讯的tadb就不会启动

这样不行吧?首先,我即使先用命令符查到了哪些进程占用了我需要的端口,但是为了运行我的程序,我不可能结束掉别的进程吧,这样的要求用户也接受不了啊,而且我也不可能要求别人用我的程序前一定要先装一个豌豆荚之类的东西,另外我需要使用的设备就是安卓系统的,我肯定得用USB连接到电脑,这样只要一连接上其他一些应用程序就会启动各自的一些后台进程,那样我还是用adb连接不了我需要的设备了

使用adb调试安卓设备,端口遭其他程序占用,怎么解决
2分
引用 4 楼 l403081341 的回复:
Quote: 引用 1 楼 AA5279AA 的回复:

首先它跟谁冲突这个可以通过dos命令来查。
另外如果你安装一个豌豆荚之类的东西,他们会先帮你把这个端口给占据,那么你就可以正常来用了。其他的程序就不可能再使用这个端口了。
最后提醒一下,一把你只要不把手机USB连接电脑,腾讯的tadb就不会启动

这样不行吧?首先,我即使先用命令符查到了哪些进程占用了我需要的端口,但是为了运行我的程序,我不可能结束掉别的进程吧,这样的要求用户也接受不了啊,而且我也不可能要求别人用我的程序前一定要先装一个豌豆荚之类的东西,另外我需要使用的设备就是安卓系统的,我肯定得用USB连接到电脑,这样只要一连接上其他一些应用程序就会启动各自的一些后台进程,那样我还是用adb连接不了我需要的设备了

你这说的啥,你调试的时候才需要开启adb,你东西都制作了,还要adb干嘛呢?你做的东西是放在手机上用的吧?放手机上使用app还需要USB连接开发端么?
使用5037端口的就那么几个程序,怎么可能那么巧都去抢占这个接口。。。

使用adb调试安卓设备,端口遭其他程序占用,怎么解决
引用 2 楼 l417584711 的回复:

adb kill-server
adb devices

或者可以考虑每次连接时都创建新的adbdebugbridge

如果是被其它端口占用,我执行 adb kill-server  ,它又提示“* server not running *”这个了。这样也解决不了吧
adbdebugbridge 这个是怎样用啊?没用过
我想,像电脑上要是装了360手机助手啊,腾讯手机管家,或者刷机大师之类的东西时,它们全开了也不会相互影响啊。它们也是通过adb命令也管理设备的,不知道它们是怎么解决这个问题的

使用adb调试安卓设备,端口遭其他程序占用,怎么解决
引用 5 楼 AA5279AA 的回复:
Quote: 引用 4 楼 l403081341 的回复:
Quote: 引用 1 楼 AA5279AA 的回复:

首先它跟谁冲突这个可以通过dos命令来查。
另外如果你安装一个豌豆荚之类的东西,他们会先帮你把这个端口给占据,那么你就可以正常来用了。其他的程序就不可能再使用这个端口了。
最后提醒一下,一把你只要不把手机USB连接电脑,腾讯的tadb就不会启动

这样不行吧?首先,我即使先用命令符查到了哪些进程占用了我需要的端口,但是为了运行我的程序,我不可能结束掉别的进程吧,这样的要求用户也接受不了啊,而且我也不可能要求别人用我的程序前一定要先装一个豌豆荚之类的东西,另外我需要使用的设备就是安卓系统的,我肯定得用USB连接到电脑,这样只要一连接上其他一些应用程序就会启动各自的一些后台进程,那样我还是用adb连接不了我需要的设备了

你这说的啥,你调试的时候才需要开启adb,你东西都制作了,还要adb干嘛呢?你做的东西是放在手机上用的吧?放手机上使用app还需要USB连接开发端么?
使用5037端口的就那么几个程序,怎么可能那么巧都去抢占这个接口。。。

不是啊。我的程序是要一直通过adb.exe来控制安卓设备的,所以好多命令都需要它来发命令执行,只是如果刚开始连接的时候端口被占用,那我直接都找不到设备了,后面的操作就没意义了啊。难道就真的只能是kill掉那些相冲突的进程么?

使用adb调试安卓设备,端口遭其他程序占用,怎么解决
2分
别折腾了,一般电脑上装了360或qq的话,你第三方的adb都得完蛋
使用adb调试安卓设备,端口遭其他程序占用,怎么解决
引用 8 楼 DrSmart 的回复:

别折腾了,一般电脑上装了360或qq的话,你第三方的adb都得完蛋

难道就这样被它们给压死了么

使用adb调试安卓设备,端口遭其他程序占用,怎么解决
20分
基本是这样的,除非检测到他们的adb,直接用他们的adb好了
使用adb调试安卓设备,端口遭其他程序占用,怎么解决
引用 10 楼 DrSmart 的回复:

基本是这样的,除非检测到他们的adb,直接用他们的adb好了

真想知道360那些是怎么做到的   一直没找到可行的解决方案啊

使用adb调试安卓设备,端口遭其他程序占用,怎么解决
2分
引用 7 楼 l403081341 的回复:
Quote: 引用 5 楼 AA5279AA 的回复:
Quote: 引用 4 楼 l403081341 的回复:
Quote: 引用 1 楼 AA5279AA 的回复:

首先它跟谁冲突这个可以通过dos命令来查。
另外如果你安装一个豌豆荚之类的东西,他们会先帮你把这个端口给占据,那么你就可以正常来用了。其他的程序就不可能再使用这个端口了。
最后提醒一下,一把你只要不把手机USB连接电脑,腾讯的tadb就不会启动

这样不行吧?首先,我即使先用命令符查到了哪些进程占用了我需要的端口,但是为了运行我的程序,我不可能结束掉别的进程吧,这样的要求用户也接受不了啊,而且我也不可能要求别人用我的程序前一定要先装一个豌豆荚之类的东西,另外我需要使用的设备就是安卓系统的,我肯定得用USB连接到电脑,这样只要一连接上其他一些应用程序就会启动各自的一些后台进程,那样我还是用adb连接不了我需要的设备了

你这说的啥,你调试的时候才需要开启adb,你东西都制作了,还要adb干嘛呢?你做的东西是放在手机上用的吧?放手机上使用app还需要USB连接开发端么?
使用5037端口的就那么几个程序,怎么可能那么巧都去抢占这个接口。。。

不是啊。我的程序是要一直通过adb.exe来控制安卓设备的,所以好多命令都需要它来发命令执行,只是如果刚开始连接的时候端口被占用,那我直接都找不到设备了,后面的操作就没意义了啊。难道就真的只能是kill掉那些相冲突的进程么?

手机只要不是默认开始调试模式,电脑端的都不会占用那个端口的。已开启调试模式,该端口自动打开。
工具就一把,你要用,人家也要用,那只能PK看最后谁拿到了。。

使用adb调试安卓设备,端口遭其他程序占用,怎么解决
2分
1.先查出那个程序占用了你的端口,然后把那个程序关闭掉,或者修改一下端口
使用adb调试安卓设备,端口遭其他程序占用,怎么解决
引用 13 楼 KNIGHTDE 的回复:

1.先查出那个程序占用了你的端口,然后把那个程序关闭掉,或者修改一下端口

关掉别的程序肯定不行。要修改端口需要怎样弄啊?

使用adb调试安卓设备,端口遭其他程序占用,怎么解决
2分
引用 14 楼 l403081341 的回复:
Quote: 引用 13 楼 KNIGHTDE 的回复:

1.先查出那个程序占用了你的端口,然后把那个程序关闭掉,或者修改一下端口

关掉别的程序肯定不行。要修改端口需要怎样弄啊?

资源监视器 找网络,看看5000端口呗谁占用了就知道,干掉就行了

使用adb调试安卓设备,端口遭其他程序占用,怎么解决
2分
少年,360占着,你关个试试
使用adb调试安卓设备,端口遭其他程序占用,怎么解决
引用 16 楼 DrSmart 的回复:

少年,360占着,你关个试试

360专业流氓,只有它关我的份  我哪敢关它的

使用adb调试安卓设备,端口遭其他程序占用,怎么解决
2分
这个问题 我也碰到过  解决的方法也是和楼主一样,先杀进程中tadb然后 重启device中的adb,但还是期望更好的解决办法!
使用adb调试安卓设备,端口遭其他程序占用,怎么解决
我也遇到过这个问题,我每次是5037端口被占用,用netstat命令查出来是一个svchost.exe占用的,每次开机之后都要kill一次svchost.exe求高手解决
使用adb调试安卓设备,端口遭其他程序占用,怎么解决
引用 18 楼 hongbingfans 的回复:

这个问题 我也碰到过  解决的方法也是和楼主一样,先杀进程中tadb然后 重启device中的adb,但还是期望更好的解决办法!

tadb是腾讯的,你可以试试360的关关,直接给你加入到病毒库

使用adb调试安卓设备,端口遭其他程序占用,怎么解决
多谢大家了  想到解决办法了  adb.exe在谷歌能下载到源码,看了里面的源码也了解了些里面的原理,后来发现像360 刷机大师,腾讯管家,这些软件他们使用的adb也是经过修改的,就像DrSmart 说的一样,他们修改了adb的机制,先查找当前是否已经开启adb server,如果有开启,就直接连接到它的服务端,如果检测到没有开启adb server,则开启adb.exe进程,启动adb server .这样就保证不会冲突了.
使用adb调试安卓设备,端口遭其他程序占用,怎么解决
引用 2 楼 l417584711 的回复:

adb kill-server
adb devices

或者可以考虑每次连接时都创建新的adbdebugbridge

我每次也是新建一个adbdebugbridge,依然是不管用。难道我用的有问题?请指点下。
另外楼主是否能透露下,“查找当前是否已经开启adb server,如果有开启,就直接连接到它的服务端,如果检测到没有开启adb server” 这个机制怎么使用?

使用adb调试安卓设备,端口遭其他程序占用,怎么解决
最简单的方法…去建立个环境变量,名字为ANDROID_ADB_SERVER_PORT,值为任意未占用的端口号即可,比如我的是7035…确定,关掉你所有的cmd窗口,再去连接吧…完美解决,最后奉劝各位,都是搞软件开发的还不懂得做开发一定要远离360这句话么?凡是看到一个开发电脑上面装着360,我内心对这个开发者的印象就大打折扣…
使用adb调试安卓设备,端口遭其他程序占用,怎么解决
楼主,我现在也在做winform操作安卓手机。有没有相关资料给共享下啊
使用adb调试安卓设备,端口遭其他程序占用,怎么解决
引用 23 楼 wilk2007 的回复:

最简单的方法…去建立个环境变量,名字为ANDROID_ADB_SERVER_PORT,值为任意未占用的端口号即可,比如我的是7035…确定,关掉你所有的cmd窗口,再去连接吧…完美解决,最后奉劝各位,都是搞软件开发的还不懂得做开发一定要远离360这句话么?凡是看到一个开发电脑上面装着360,我内心对这个开发者的印象就大打折扣…

这位真乃神人也!

使用adb调试安卓设备,端口遭其他程序占用,怎么解决
引用 21 楼 l403081341 的回复:

多谢大家了  想到解决办法了  adb.exe在谷歌能下载到源码,看了里面的源码也了解了些里面的原理,后来发现像360 刷机大师,腾讯管家,这些软件他们使用的adb也是经过修改的,就像DrSmart 说的一样,他们修改了adb的机制,先查找当前是否已经开启adb server,如果有开启,就直接连接到它的服务端,如果检测到没有开启adb server,则开启adb.exe进程,启动adb server .这样就保证不会冲突了.

请问一下你所说的”先查找当前是否已经开启adb server,如果有开启,就直接连接到它的服务端“,这一步是在应用里面做还是在adb源码里面,如果是应用中应该是用socket连5037端口,那又怎样用socket构造adb shell之类的功能呢?

使用adb调试安卓设备,端口遭其他程序占用,怎么解决
引用 25 楼 zhuyb829 的回复:
Quote: 引用 23 楼 wilk2007 的回复:

最简单的方法…去建立个环境变量,名字为ANDROID_ADB_SERVER_PORT,值为任意未占用的端口号即可,比如我的是7035…确定,关掉你所有的cmd窗口,再去连接吧…完美解决,最后奉劝各位,都是搞软件开发的还不懂得做开发一定要远离360这句话么?凡是看到一个开发电脑上面装着360,我内心对这个开发者的印象就大打折扣…

这位真乃神人也!

你成功了么?请问?

使用adb调试安卓设备,端口遭其他程序占用,怎么解决
引用 23 楼 wilk2007 的回复:

最简单的方法…去建立个环境变量,名字为ANDROID_ADB_SERVER_PORT,值为任意未占用的端口号即可,比如我的是7035…确定,关掉你所有的cmd窗口,再去连接吧…完美解决,最后奉劝各位,都是搞软件开发的还不懂得做开发一定要远离360这句话么?凡是看到一个开发电脑上面装着360,我内心对这个开发者的印象就大打折扣…

我觉得问题在于,用户很有可能会用360.。。。。所以要考虑使用环境

使用adb调试安卓设备,端口遭其他程序占用,怎么解决
引用 28 楼 adolphfend 的回复:
Quote: 引用 23 楼 wilk2007 的回复:

最简单的方法…去建立个环境变量,名字为ANDROID_ADB_SERVER_PORT,值为任意未占用的端口号即可,比如我的是7035…确定,关掉你所有的cmd窗口,再去连接吧…完美解决,最后奉劝各位,都是搞软件开发的还不懂得做开发一定要远离360这句话么?凡是看到一个开发电脑上面装着360,我内心对这个开发者的印象就大打折扣…

我觉得问题在于,用户很有可能会用360.。。。。所以要考虑使用环境

360已经比以前收敛了。可以设置以下不启动手机助手就行了。酷狗才是最恶心人的,我废掉了它的kadb.exe,KGDaemon.exe,winusb.dll,这货还是把我的adb给杀了!是直接杀了!操蛋!想边听歌边写程序都不行。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明使用adb调试安卓设备,端口遭其他程序占用,怎么解决
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!