HarmonyOS 鸿蒙Next:linux配置hdc环境不成功
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
可能原因
- 原因一:本地多个hdc.exe,多个hdc的环境变量。
- 原因二:开启了自带hdc.exe工具的应用(Deveco,打卡软件)。
- 原因三:其他软件抢占hdc server端口。
解决措施
- 查看默认端口8710是否被占用,没有则解决多个hdc间冲突。
- 解决多个hdc间的冲突,任务管理器-详细信息-按Caps Lock切换大写后按H,看下hdc.exe的数量及具体路径,关闭全部hdc.exe。
- 建议清理本地旧版本的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环境不成功的问题,以下是一些可能的解决方向:
-
检查hdc版本兼容性: 确保你下载的hdc工具与你的HarmonyOS版本以及Linux发行版兼容。不同版本的hdc可能支持不同的操作系统和HarmonyOS版本。
-
环境变量配置: 确认hdc工具的路径已正确添加到系统的PATH环境变量中。可以通过在终端输入
echo $PATH
来查看当前PATH设置,并确保hdc工具的路径包含在内。 -
依赖库安装: 某些hdc版本可能依赖于特定的系统库。检查hdc的官方文档,确认是否所有必要的依赖库都已正确安装。
-
权限问题: 确保你有足够的权限来执行hdc命令。在某些Linux发行版中,你可能需要使用
sudo
来运行hdc命令。 -
USB调试和连接: 确认你的设备已开启USB调试模式,并且已通过USB正确连接到Linux计算机。检查设备管理器或dmesg输出,确认设备是否被正确识别。
-
日志和错误信息: 查看hdc命令输出的错误信息或日志,这可能会提供关于配置失败原因的更多线索。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html,