使用adb调试安卓设备,端口遭其他程序占用,怎么解决
最近用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进程),把它强制结束掉 请问大家,能不能有个好的解决方案提供啊。不可能每次我运行程序都得先手动去结束那些进程吧,而且我也不可能知道所有会跟它冲突的进程。要是这个不解决,那我的程序不就完全废啦?! 望大家帮个忙
[解决办法]
首先它跟谁冲突这个可以通过dos命令来查。
另外如果你安装一个豌豆荚之类的东西,他们会先帮你把这个端口给占据,那么你就可以正常来用了。其他的程序就不可能再使用这个端口了。
最后提醒一下,一把你只要不把手机USB连接电脑,腾讯的tadb就不会启动
[解决办法]
adb kill-server
adb devices
或者可以考虑每次连接时都创建新的adbdebugbridge
[解决办法]
首先它跟谁冲突这个可以通过dos命令来查。
另外如果你安装一个豌豆荚之类的东西,他们会先帮你把这个端口给占据,那么你就可以正常来用了。其他的程序就不可能再使用这个端口了。
最后提醒一下,一把你只要不把手机USB连接电脑,腾讯的tadb就不会启动
这样不行吧?首先,我即使先用命令符查到了哪些进程占用了我需要的端口,但是为了运行我的程序,我不可能结束掉别的进程吧,这样的要求用户也接受不了啊,而且我也不可能要求别人用我的程序前一定要先装一个豌豆荚之类的东西,另外我需要使用的设备就是安卓系统的,我肯定得用USB连接到电脑,这样只要一连接上其他一些应用程序就会启动各自的一些后台进程,那样我还是用adb连接不了我需要的设备了
你这说的啥,你调试的时候才需要开启adb,你东西都制作了,还要adb干嘛呢?你做的东西是放在手机上用的吧?放手机上使用app还需要USB连接开发端么?
使用5037端口的就那么几个程序,怎么可能那么巧都去抢占这个接口。。。
不是啊。我的程序是要一直通过adb.exe来控制安卓设备的,所以好多命令都需要它来发命令执行,只是如果刚开始连接的时候端口被占用,那我直接都找不到设备了,后面的操作就没意义了啊。难道就真的只能是kill掉那些相冲突的进程么?
1.先查出那个程序占用了你的端口,然后把那个程序关闭掉,或者修改一下端口
关掉别的程序肯定不行。要修改端口需要怎样弄啊?