华为手机鸿蒙3.0开发环境DevEco Studio搭建HDC连接失败连不上手机问题解决办法
经过断断续续一个周的折腾,终于能让华为nova8 harmony3.0的手机连上开发工具DevEco Studio了。有个感想: AI可以作为我们编程路上的好助手好工具,但是复杂问题还得靠开发者动脑子根据助手给出的材料综合判断得出解决思路。最近用华为nova8 se手机系统版本harmony3.0开发APP 开始准备连接Android Studio直接在devices里面看不到通过网上一通搜索,发现华为出了一个hdc的东西和安卓的adb是一样的功能。首先介绍下这两个东西是干嘛的:他们是一个随着studio启动而启动的server 是连接手机和电脑的中间人,就像我们平常开发的后端服务是一样的,有进程有端口,android开发时会在任务管理器里看到adb.exe,默认端口是5037。hdc的端口是8710,然而我想说的是这个hdc跟我们普通开发者并没有什么关系,不用在这上面下大力气,去找手机连不上电脑的原因了。就算是DevEco Studio连上了手机 hdc list targets命令还是看不到手机,其实看不到是对的 我查了一下DeepSeek 普通手机用不上hdc下图是DeepSeek回答截图如下,所以也不用在hdc上使劲了我问DeepSeek手机上会预装hdc daemon吗,答案是不会。(daemon就是手机上运行的客户端)目前我的nova8上装的是adb daemon。(adb 连接server的客户端)这个hdc没啥关系,但是它顺带着启动的HdcExternal.exe才是我们要关注的,它启动的是兼容adb的服务,可以冒充adb,这个东西是我们应该关注的东西。实际上DevEco Studio并没有adb,也不会启动adb服务,而Android Studio是有adb服务的。所以这里你在命令行里怎么折腾adb也没用,启动的adb server根本和DevEco 没半毛钱关系,比如你会从网上搜索到的各种命令 adb kill-server; adb start-server; adb devices;在这上面用劲没有啥效果,搞得自己焦头烂额【希望看到的兄弟们不要再走我的老路】。环境变量设置HDC_SERVER_PORT端口,这个端口就是模拟adb server的端口7035,可以任意设置【hdc的端口还是8710】,如下图这里为什么要设置固定端口呢,因为不设置的话,这个端口是随机的,随机的就没法设置防火墙入站规则,有个这个规则,手机就可以访问到电脑的这个端口,就可以模拟adb通信了,最终就连上了,device框里就能看到了。还有个小技巧:就是如果拔下数据线,再插上看不到,那就重新关闭再打开USB调试选项,我猜测这是启动手机端的daemon的开关。