【Flutter×鸿蒙】一个"插队"技巧,解决90%的 command not found

系列目录

  • (1) 环境开荒 ← 你在这里
  • (2) 驯服 SDK
  • (3) 项目搬家
  • (4) 保命急救箱

搞 Flutter 鸿蒙开发,第一步不是写代码,而是搭环境。我第一次配的时候,ohpm command not found 报了 5 次,最后发现核心就是一个字------"抢":让鸿蒙工具在系统 PATH 里排到最前面。这篇把环境搭建拆成 4 关,照做一次过。


🗺️ 通关路线图

关卡 任务 预计耗时
第 1 关 下载安装 DevEco Studio 5-10 min
第 2 关 安装 SDK 组件 5-15 min(看网速)
第 3 关 配置环境变量(最关键) 5 min
第 4 关 补齐 JDK 17 + 全面验证 3 min

总共 4 关,顺利的话半小时内搞定。下面逐关击破。


🎯 第 1 关:下载安装 DevEco Studio

目标:电脑上装好鸿蒙的官方 IDE(类似 Android Studio)。

📋 操作

下载地址:developer.huawei.com/consumer/cn...

根据你的系统选择对应的安装包:

  • macOS:区分 Apple Silicon(M1/M2/M3/M4)和 Intel 芯片。下错了也能用,但性能差很多------Apple Silicon 的芯片跑 Intel 版需要走 Rosetta 转译,编译速度会慢一大截。
  • Windows :下 .exe 安装包。安装路径不要有中文或空格,否则后面工具链解析路径时可能出幺蛾子。

⚠️ macOS 首次打开可能提示"无法验证开发者"。解决办法:去 系统设置 → 隐私与安全性,找到被拦截的提示,点「仍要打开」即可。

✅ 验证

能正常打开 DevEco Studio,看到欢迎界面,就过关了。

如果不对:macOS 上双击没反应,大概率是被 Gatekeeper 拦了,按上面的方法去「隐私与安全性」里放行。Windows 上如果闪退,检查安装路径是否包含中文或空格。


🎯 第 2 关:安装 SDK 组件

目标:装好 HarmonyOS SDK 和工具链。

📋 操作

首次启动 DevEco Studio 会弹出安装引导向导,跟着走就行,但有两个地方要注意:

1. SDK 路径保持默认

  • macOS:/Users/你的用户名/Library/Huawei/Sdk
  • Windows:C:\Users\你的用户名\AppData\Local\Huawei\Sdk

保持默认路径的好处是:后续很多工具和文档都默认读这个位置,改了反而要到处补配置。

2. 组件检查

在向导或设置页面中:

  • HarmonyOS SDK:新版 IDE 可能提示"已包含在 IDE 中,无需单独安装",这是正常的(如左图)。
  • OpenHarmony SDK :建议检查并安装最新的 API Version(如 API 20+),且必须确保 Toolchains 已勾选(如右图)。

⚠️ 如果不小心跳过了向导:打开 DevEco Studio → Settings(设置)→ SDK,在这里管理 SDK 和工具链。

✅ 验证

在 DevEco Studio 中打开 Settings → SDK 页面,看到:

  1. HarmonyOS SDK 状态正常(已安装或内置)。
  2. OpenHarmony SDKToolchains 状态为「已安装」。

两项都满足就过关。

HarmonyOS SDK(内置模式) OpenHarmony SDK(需勾选 Toolchains)

如果不对:回到 Settings → HarmonyOS SDK 页面,勾选缺失的组件点「Apply」重新下载。如果下载卡住,检查网络------华为的 SDK 服务器在国内,挂梯子反而可能更慢。


🎯 第 3 关:配置环境变量(本篇最关键)

目标:让终端也能找到 DevEco 自带的 ohpm、hvigorw、node 三个工具。

为什么需要这步?

DevEco Studio 内部自带了这些工具,但它们"躲"在 DevEco 的安装目录深处。你在 DevEco 的内置终端里用没问题,但打开系统终端(比如 Mac 的 Terminal、Windows 的 PowerShell),输入 ohpm 就会报 command not found------因为系统终端根本不知道去哪找这些工具。

我们需要做的,就是把这些工具的位置"告诉"系统终端。

这里有个最容易踩的坑

很多人电脑上已经装了 Node.js(比如之前做前端项目装的)。如果系统先找到了那个旧版 Node,而不是 DevEco 自带的版本,后面编译鸿蒙项目就会报各种莫名其妙的错------版本不兼容、模块找不到,排查半天发现根本不是代码的问题。

解决思路就是"插队"------把 DevEco 的工具路径放到 PATH 的最前面,这样系统找工具时,会先找到 DevEco 的版本。

📋 操作

macOS 用户

用编辑器打开终端配置文件 ~/.zshrc

在终端里执行以下命令,用 VS Code 打开这个文件:

bash 复制代码
# 用 VS Code 打开终端配置文件
code ~/.zshrc

如果提示 code 命令找不到,也可以用:open -e ~/.zshrc(这条命令会用 Mac 自带的文本编辑器打开文件)

在文件末尾添加以下内容:

bash 复制代码
# ============ 鸿蒙开发环境 ============
# DevEco Studio 的安装位置(macOS 默认路径,如果修改了安装位置请同步修改此处)
export TOOL_HOME=/Applications/DevEco-Studio.app/Contents
export DEVECO_SDK_HOME=$TOOL_HOME/sdk


# 关键:把三个工具"插队"到 PATH 最前面
# 这样系统找工具时,会优先找到 DevEco 的版本
export PATH=$TOOL_HOME/tools/ohpm/bin:$PATH
export PATH=$TOOL_HOME/tools/hvigor/bin:$PATH
export PATH=$TOOL_HOME/tools/node/bin:$PATH

保存文件后,在终端里执行这条命令让设置立刻生效:

bash 复制代码
# 重新加载配置文件,让刚才的修改生效(不用重启终端)
source ~/.zshrc

或者更简单的方法:关掉终端窗口,重新打开一个新的。

Windows 用户

  1. 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
  2. 在「系统变量」区域,点「新建」,添加一个变量:
  • 变量名:DEVECO_SDK_HOME
  • 变量值:C:\Program Files\Huawei\DevEco Studio\sdk
  1. 在「系统变量」区域找到 Path,双击打开,添加以下三行,并且把它们拖到列表最顶端
  • C:\Program Files\Huawei\DevEco Studio\tools\ohpm\bin
  • C:\Program Files\Huawei\DevEco Studio\tools\hvigor\bin
  • C:\Program Files\Huawei\DevEco Studio\tools\node

⚠️ Windows 的 Path 是从上往下依次查找的,所以一定要把这三行拖到最顶端。道理和 Mac 的"插队"一模一样------排在前面的先被找到。

✅ 验证

必须打开一个全新的终端窗口! 旧窗口还在用修改前的配置,不会加载新设置。

逐个执行以下命令:

bash 复制代码
# 查看 ohpm 版本(鸿蒙的包管理工具)
ohpm -v

期望输出:版本号,比如 6.0.1

bash 复制代码
# 查看 Node.js 版本(应该是 DevEco 自带的版本)
node -v

期望输出:v18.xv20.x

bash 复制代码
# 查看 hvigorw 版本(鸿蒙的构建工具)
hvigorw --version

期望输出:任何版本信息都行,能出东西就说明找到了

如果某个命令报 command not found

  1. 确认你开的是新终端窗口(这是最常见的原因,旧窗口不会加载新配置)
  2. 检查 ~/.zshrc(Mac)或系统环境变量(Windows)里的路径是否拼写正确
  3. 用以下命令看看系统到底找到了哪个位置的工具:
bash 复制代码
# macOS:查看 ohpm 命令实际指向哪个文件
which ohpm
# Windows:查看 ohpm 命令实际指向哪个文件
where ohpm

如果输出的路径不在 DevEco 目录下,说明没成功插到队伍前面------回去检查 PATH 配置的顺序。


🎯 第 4 关:补齐 JDK + 全面验证

目标:确认 Java 环境就位,所有工具全部可用。

为什么需要 JDK?

DevEco Studio 自带了 Java Runtime,日常开发够用。但编译某些三方鸿蒙插件时,构建工具会去找 JAVA_HOME 这个环境变量。如果系统里没装 JDK 17,到那时候才报错会更头疼------因为你会以为是插件的问题,排查半天才发现是 Java 没装。不如现在一步到位。

📋 操作

先检查一下当前的 Java 版本:

bash 复制代码
# 查看当前安装的 Java 版本
java -version

如果输出包含 17.x.x(比如 openjdk version "17.0.9"),直接跳过安装,去做最终验证。

如果没有输出或者版本不是 17:

macOS(在终端里执行):

bash 复制代码
# 通过 Homebrew 安装 JDK 17
brew install openjdk@17

装完后 Homebrew 会提示你需要配置环境变量,按照提示把 JAVA_HOME 加到 ~/.zshrc 里即可。

Windows

Oracle JDK 17 下载页 下载安装包,安装完成后:

  1. 新建系统变量 JAVA_HOME,值为 JDK 的安装路径(比如 C:\Program Files\Java\jdk-17
  2. Path 变量中添加 %JAVA_HOME%\bin

✅ 最终验证清单

打开一个全新的终端窗口,逐个执行:

命令 期望结果
ohpm -v 版本号(如 6.0.1
node -v v18.xv20.x
hvigorw --version 版本信息
java -version 17.x.x

四个都通过 = 通关!

如果 java -version 不对:

  • 确认安装的是 JDK 17,不是 8、11 或 21
  • macOS 用 brew info openjdk@17 查看安装状态和配置提示
  • Windows 确认 JAVA_HOME 环境变量指向了正确的目录,且 Path 里有 %JAVA_HOME%\bin

🏆 通关总结

项目 状态
DevEco Studio ✅ 已安装
HarmonyOS SDK ✅ 已安装
ohpm ✅ 命令行可用
hvigorw ✅ 命令行可用
node ✅ DevEco 版本优先
JDK ✅ 17+

这一篇的核心就一件事------确保终端能找到 DevEco 的工具,而且优先 找到它们(而不是系统里已有的旧版本)。理解了"插队"这个概念,后面遇到类似的 command not found 问题,你都知道该去哪查:先 which xxx 看系统找到的是哪个,再检查 PATH 里的顺序。

环境搭好了,接下来要装 Flutter 的鸿蒙版 SDK------但 FVM 根本不认识它,我们得想办法"哄"它接受。

下一篇:Flutter 鸿蒙通关手册(二):驯服 SDK

相关推荐
恋猫de小郭4 小时前
Flutter 发布官方 Skills ,Flutter 在 AI 领域再添一助力
android·前端·flutter
恋猫de小郭20 小时前
2026 Flutter VS React Native ,同时在 AI 时代 VS Native 开发,你没见过的版本
android·前端·flutter
明君879971 天前
Flutter 如何给图片添加多行文字水印
前端·flutter
Hcourage1 天前
鸿蒙工程获取C/C++代码覆盖
harmonyos
四眼肥鱼1 天前
flutter 利用flutter_libserialport 实现SQ800 串口通信
前端·flutter
二流小码农1 天前
鸿蒙开发:上传一张参考图片便可实现页面功能
android·ios·harmonyos
万少2 天前
HarmonyOS 开发必会 5 种 Builder 详解
前端·harmonyos
火柴就是我2 天前
让我们实现一个更好看的内部阴影按钮
android·flutter
王晓枫2 天前
flutter接入三方库运行报错:Error running pod install
前端·flutter