HarmonyOS 鸿蒙Next:linux配置hdc环境不成功

发布于 1周前 作者 ionicwang 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:linux配置hdc环境不成功

#!/bin/sh 

# 获取当前 shell  
CURRENT_SHELL=$(echo $SHELL)  

# 获取当前脚本所在目录  
SCRIPT_DIR=$(dirname "$(realpath "$0")")  

# toolchains 的路径  
TOOLCHAINS_PATH="$SCRIPT_DIR/toolchains"
HDC_SERVER_PORT=65037

# 检查当前 shell  
if [ "$CURRENT_SHELL" = "/bin/bash" ]; then  
    CONFIG_FILE="$HOME/.bash_profile"  
    # 添加环境变量到 .bash_profile
    {
        echo "HDC_SERVER_PORT=65037"
        echo "export HDC_SERVER_PORT"
    } >> "$CONFIG_FILE"
    echo "export PATH=$PATH:$TOOLCHAINS_PATH" >> "$CONFIG_FILE"  
    echo ".bash_profile 已更新,添加了 toolchains 到 PATH。"  

elif [ "$CURRENT_SHELL" = "/bin/zsh" ]; then  
    CONFIG_FILE="$HOME/.zshrc"  
    # 添加环境变量到 .zshrc
    {
        echo "HDC_SERVER_PORT=65037"
        echo "export HDC_SERVER_PORT"
    } >> "$CONFIG_FILE"
    echo "export PATH=$PATH:$TOOLCHAINS_PATH" >> "$CONFIG_FILE"  
    echo ".zshrc 已更新,添加了 toolchains 到 PATH。"  

else  
    echo "当前 shell 不是 Bash 或 Zsh,未进行任何操作。"  
    exit 1  
fi  

# 提示用户更新配置文件  
echo "请运行 'source $CONFIG_FILE' 以使更改生效。"

我在Linux环境中写了一个sh脚本来配置hdc环境,怀疑是因为端口被占用导致连接设备时总是显示connect server failed,这样配置端口不行吗?我已经在外部执行source ~/.bash_profile文件。


更多关于HarmonyOS 鸿蒙Next:linux配置hdc环境不成功的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

可能原因

  • 原因一:本地多个hdc.exe,多个hdc的环境变量。
  • 原因二:开启了自带hdc.exe工具的应用(Deveco,打卡软件)。
  • 原因三:其他软件抢占hdc server端口。

解决措施

  1. 查看默认端口8710是否被占用,没有则解决多个hdc间冲突。
  2. 解决多个hdc间的冲突,任务管理器-详细信息-按Caps Lock切换大写后按H,看下hdc.exe的数量及具体路径,关闭全部hdc.exe。
  3. 建议清理本地旧版本的hdc,关闭自带hdc.exe工具的应用,执行hdc kill后确保仅新版本hdc.exe被使用即可,如需使用deveco等自带hdc.exe工具,建议hdc环境变量配置为deveco内部hdc的路径。

更多关于HarmonyOS 鸿蒙Next:linux配置hdc环境不成功的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我这个linux是虚拟环境,只能通过脚本操作他,执行hdc -v等命令正常只有hdc tconn ip:端口号的时候显示连接异常,

看下这个端口占用情况:netstat -tunlp | grep 65037

Connect server failed
Netid State Recv-Q Send-Q Local Address:Port Peer Address:PortProcess
啥信息也没有
但是我看华为文档里面说可能跟注册表有关,然后得到这些注册表信息

[I][2024-10-15 16:05:22.300][fab31cc][session.cpp:25] Program running. Ver: 3.1.0b Pid:846
[I][2024-10-15 16:05:22.301][fab31cc][session.cpp:33] set UV_THREADPOOL_SIZE:128

[D][2024-10-15 16:05:22.301][fab31cc][session.cpp:44] loopMain init

[F][2024-10-15 16:05:22.301][fab31cc][session.cpp:57] libusb_init failed ctxUSB is nullptr

[D][2024-10-15 16:05:22.303][fab31cc][base.cpp:1185] Write mutext to /tmp/.HDCServer.pid, pid:846

[D][2024-10-15 16:05:22.303][fab31cc][server_for_client.cpp:107] channelHost ::ffff:127.0.0.1, port: 8710

[F][2024-10-15 16:05:22.303][fab31cc][host_usb.cpp:98] InitLogging failed ctxUSB is nullptr

[F][2024-10-15 16:05:22.303][fab31cc][host_usb.cpp:50] USB mod ctxUSB is nullptr, recompile please

[F][2024-10-15 16:05:22.303][fab31cc][server.cpp:98] clsUSBClt Initial failed

Initial failed

[D][2024-10-15 16:05:22.303][fab31cc][server.cpp:35] ~HdcServer

[D][2024-10-15 16:05:22.303][fab31cc][base.cpp:624] before uv handle close, the uv handle type is 1

[D][2024-10-15 16:05:22.303][fab31cc][session.cpp:76] ~HdcSessionBase free sessionRef:0 instance:server

[D][2024-10-15 16:05:22.303][fab31cc][main.cpp:510] !!!Main finish main
但是又不说怎么解决,

针对HarmonyOS 鸿蒙Next中Linux配置hdc环境不成功的问题,以下是一些可能的解决方向:

  1. 检查hdc版本兼容性: 确保你下载的hdc工具与你的HarmonyOS版本以及Linux发行版兼容。不同版本的hdc可能支持不同的操作系统和HarmonyOS版本。

  2. 环境变量配置: 确认hdc工具的路径已正确添加到系统的PATH环境变量中。可以通过在终端输入echo $PATH来查看当前PATH设置,并确保hdc工具的路径包含在内。

  3. 依赖库安装: 某些hdc版本可能依赖于特定的系统库。检查hdc的官方文档,确认是否所有必要的依赖库都已正确安装。

  4. 权限问题: 确保你有足够的权限来执行hdc命令。在某些Linux发行版中,你可能需要使用sudo来运行hdc命令。

  5. USB调试和连接: 确认你的设备已开启USB调试模式,并且已通过USB正确连接到Linux计算机。检查设备管理器或dmesg输出,确认设备是否被正确识别。

  6. 日志和错误信息: 查看hdc命令输出的错误信息或日志,这可能会提供关于配置失败原因的更多线索。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部