HarmonyOS鸿蒙Next中是否编译打包不能只靠command-line-tools了

HarmonyOS鸿蒙Next中是否编译打包不能只靠command-line-tools了 【问题描述】:是否编译打包不能只靠command-line-tools了呢,因为我们另一台机器可能是5.0的版本只依赖command-line-tools就行,但是新机器上配置的是6.0版本的,就会有这个报错。
hvigorw -v指令这个没问题,就是hvigorw clean有问题

【问题现象】:新机器上配置的是6.0版本的,就会有这个报错

ERROR: 00303217Configuration Error

Error Message: Invalid value of 'DEVECO_SDK_HOME’in the system environment path


更多关于HarmonyOS鸿蒙Next中是否编译打包不能只靠command-line-tools了的实战教程也可以访问 https://www.itying.com/category-93-b0.html

14 回复

开发者你好,请问命令执行路径是否是工程根目录

从hvigorw 5.18.4版本开始,以下命令支持在任意路径下执行,其他hvigorw命令需要在工程根目录下执行。

  • hvigorw -v
  • hvigorw --version
  • hvigorw version
  • hvigorw -h
  • hvigorw --help

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-hvigor-commandline#section10533193217911

更多关于HarmonyOS鸿蒙Next中是否编译打包不能只靠command-line-tools了的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


是根目录,hvigorw -v指令没问题,就是hvigorw clean有问题

配置Deveco sdk home后,问题已解决

https://developer.huawei.com/consumer/cn/doc/architecture-guides/common-v1_26-ts_624-0000002566975765

  • DEVECO_SDK_HOME 是 hvigor(鸿蒙构建工具)用于定位 SDK 路径的关键环境变量。HarmonyOS 6.0 的 SDK 结构或版本号可能与 5.0 有所不同,如果该变量指向的路径下缺少对应 API 版本的 SDK、或者路径格式错误(例如包含空格、中文、尾部多余斜杠等),就会触发 Configuration Error

开发者你好,可以参考官方00303217 环境路径无效处理方案,修改环境路径XXX的值,再执行hvigorw --stop-daemon命令,然后重试。

根据这个处理步骤还是没办法解决

在 5.0 版本中,如果你只用 command-line-tools 且把环境变量指过去,甚至有些情况下不配置 DEVECO_SDK_HOME 也能通过工具链内部的相对路径找到。但从 6.0 版本开始,Hvigor(尤其是执行 clean 或全面初始化任务时)强化了强校验,如果检测到系统配置了 DEVECO_SDK_HOME,但其路径格式或者指向的 SDK 目录结构不符合 6.0 的预期,就会直接卡住并抛出 Configuration Error

您好,如果可以在5.0 版本能正常工作,是因为当时的 SDK 目录结构与你配置的 DEVECO_SDK_HOME路径一致。升级到 6.0 后,SDK 目录结构可能发生了变化,导致原路径失效。

建议你在新机器上先删除 DEVECO_SDK_HOME环境变量,仅将 command-line-tools 的 bin目录加入 PATH,让 hvigorw 自动查找内置 SDK。如果仍有问题,检查 6.0 版本解压后的实际 SDK 目录结构,再按实际结构配置。,

版本冲突了。
检查下DevEco IDE配置过DEVECO_SDK_HOME吗。如果有,删掉,清缓存。
统一下IDE和CLT的环境变量。然后hvigorw --stop-daemon。
如果想两个版本都用,写脚本,set 当次编译用的环境变量。

应该不是吧, ERROR: 00303217 Configuration Error / Invalid value of 'DEVECO_SDK_HOME’报错,根本原因不是"command-line-tools 不能独立完成编译打包",而是 DEVECO_SDK_HOME环境变量配置的路径不正确或与 6.0 版本的 SDK 目录结构不匹配的问题。

你之前5.0 版本能正常工作,是因为当时的 SDK 目录结构与你配置的 DEVECO_SDK_HOME路径一致。升级到 6.0 后,SDK 目录结构可能发生了变化,导致原路径失效。

建议你在新机器上先删除 DEVECO_SDK_HOME环境变量,仅将 command-line-tools 的 bin目录加入 PATH,让 hvigorw 自动查找内置 SDK。如果仍有问题,检查 6.0 版本解压后的实际 SDK 目录结构,再按实际结构配置

这是我集成的v6.1版本的命令行配置,对照下看是否有帮助。

cke_575.png

cke_1031.png

在6.0机器上可以试下把command-line-tools的bin目录添加到环境变量,然后再试下看看

在HarmonyOS NEXT中,编译打包已不能仅依赖command-line-tools。其构建流程需集成DevEco Studio的编译插件、SDK及签名工具链,command-line-tools仅提供基础命令行能力,缺少完整构建与打包环境。

仅靠 command-line-tools 在 6.0 版本上不够了。5.0 时 DEVECO_SDK_HOME 指向 command-line-tools 即可;6.0 开始 DevEco Studio 构建工具链拆分,需要同时配置:

  • DEVECO_SDK_HOME:指向 DevEco Studio 自带的 SDK(如 .../DevEco Studio/sdk
  • HOS_SDK_HOME:指向 OpenHarmony SDK(如 command-line-tools 中的 sdk

报错 Invalid value of 'DEVECO_SDK_HOME' 是因为该路径下缺少 6.0 所需的 etsopenharmony 等组件,而 command-line-tools 的 SDK 结构已不匹配。

解决:

  1. 在新机器上安装 DevEco Studio 6.0,将 DEVECO_SDK_HOME 指向其内置 SDK 目录。
  2. 或手动将 command-line-tools 的 SDK 与 DevEco Studio SDK 合并/复制所需组件。
  3. 确保 hvigorw 使用的 hvigor 版本与 SDK 版本一致,建议通过 DevEco Studio 的 hvigor 包装器同步。
回到顶部