今天接到了UNIAPP开发任务,遇到一个要调试APP小红点显示的问题,需要真机测试。但是按照UNIAPP官方教程和网络教程都无法检测到手机和模拟器,模拟器也换了好几个(MUMU,雷电)尝试。结果都不行,也不是开发者选项的问题,也不是模拟器端口号的问题。最后经过排查还是确定了是adb调试端口5037的问题。
PS C:\Windows\system32> adb devices
* daemon not running; starting now at tcp:5037 could not read ok from ADB Server
* failed to start daemon adb.exe: failed to check server version: cannot connect to daemon PS
类似这样一直提示5037端口被其他应用占用,然后按照网上的教程,来查看是否被占用,杀死占用的进程,再次连接,然后再报错,显示被其他应用占用。
netstat -aon | findstr "5037"
taskkill /F /PID <PID>
adb kill-server
adb start-server
然后也搞不懂adb是做什么的,也受到了一些博文的误导(要在UNIAPP选择默认adb路径之类的,反复修改),实际上adb就是ADB是Android 应用调试的一个工具,类似于nodejs,我的意思是无论是UNIAPP还是模拟器的adb它们大部分是版本的差异,只要一个能用就行,默认路径无所谓。
言归正传,最后受到一篇博文的启发blog.csdn.net/happyjjdd/a… ,发现没有其他应用占用5037,一直是adb自己占用自己(笔者水平有限,也解释不了这个问题为什么出现,只能这样通俗解释,如您有高见请劳烦赐教),只需要重新创建一个系统变量,然后再次
adb connect 127.0.0.1:xxxx
adb start-server
问题解决