鸿蒙工程在云端跑通:从案例仓到手机上一局游戏

举报
yd_236978410 发表于 2026/11/05 14:06:59 2026/11/05
【摘要】 鸿蒙工程在云端跑通:从案例仓到手机上一局游戏上一篇聊了「记忆翻牌」的实现细节,这次说说更前面的一段路——怎么把别人的鸿蒙案例仓,变成自己手机上能点开玩的一个 App。本地做这件事,要先装 DevEco Studio、拉 SDK、配 node 和 jbr、起模拟器。四个小时里大概三小时在等下载。所以这次我换了个做法:全程在浏览器的云端环境里完成。 一、先把代码拿到手案例详情页会给一个公开仓地...

鸿蒙工程在云端跑通:从案例仓到手机上一局游戏

上一篇聊了「记忆翻牌」的实现细节,这次说说更前面的一段路——怎么把别人的鸿蒙案例仓,变成自己手机上能点开玩的一个 App。

本地做这件事,要先装 DevEco Studio、拉 SDK、配 node 和 jbr、起模拟器。四个小时里大概三小时在等下载。所以这次我换了个做法:全程在浏览器的云端环境里完成。

一、先把代码拿到手

案例详情页会给一个公开仓地址,形如 https://gitcode.com/.../HarmonyOS-APP-memory-card-game.git。直接 clone 就行,公开仓不需要账号。

拿到之后先别急着编译,花两分钟看三样东西:

  • 根目录有没有 README.md
  • 有没有 harmony_app/(真正的工程在这层,不是仓库根)
  • 有没有 docs/(编译参数、环境变量基本都写在这)

这一步能省掉后面一半的瞎试。我第一次直接在仓库根敲编译命令,报了一堆「找不到 hvigorfile」,就是因为工程在下一层。

二、编译之前的三件事

第一件:SDK 版本要对上。

案例文档写的是 compile API 24(6.1.1),目标与兼容 API 23(6.1.0)。版本不匹配的报错长这样:00303217 Configuration Error,看着像配置错,其实多半是 SDK 路径指错了。

第二件:环境变量。

DEVECO_SDK_HOME、NODE_HOME、JAVA_HOME 三个都要有,而且 PATH 里得把它们排到前面。云端环境这些路径和本地不一样,照文档里的示例改成本机的实际路径,别直接抄。

第三件:local.properties。

harmony_app/local.properties 里的 sdk.dir 要指向真实 SDK 目录。这个文件常常不在仓库里(被 gitignore 了),需要自己建一个。

三、编译

进到 harmony_app/,跑:

hvigorw assembleHap --no-daemon --mode module -p product=default -p module=entry@default --console=plain

几个参数都别省:

  • --no-daemon:云端容器的资源有限,留着守护进程容易和下一次构建抢内存
  • --console=plain:不加这个,日志会带一堆控制字符,出错时看不清
  • -p product / -p module:多模块工程不指定就只打默认产物

成功的话产物在:

entry/build/default/outputs/default/entry-default-unsigned.hap

大小 380KB 左右。看到这个文件,说明编译这关过了。

顺带提醒:hvigorw --version 能敲出东西,才说明这条工具链真的可用。敲不出来先去查 NODE_HOME。

四、装到设备上

云端环境里可以用自带的云手机,也可以连本地真机。先确认设备在不在:

hdc list targets

有输出才有戏。空列表一般是模拟器还没起来,或者 hdc 服务和设备没握手完成。

然后装包:

hdc install -r entry/build/default/outputs/default/entry-default-unsigned.hap

-r 是覆盖安装,改完代码重装不用先卸。

装完桌面图标没刷新的话,直接起:

hdc shell aa start -b com.harmonypractice.memorycardgame -a EntryAbility

五、我踩的三个坑

坑一:hdc list targets 一直空。

不是命令错,是模拟器刚起来还没就绪。等 30 秒再敲一次,或者重启一下模拟器。

坑二:编译过了,装的时候报签名。

entry-default-unsigned.hap 是未签名包,装到调试设备上需要设备处于调试模式。云端云手机默认是开的,本地真机要在开发者选项里打开「USB 调试」和「允许安装未知来源」。

坑三:日志里全是噪音。

排查问题的时候别直接 hdc hilog,几万行刷屏。按应用名过滤:

hdc hilog | grep CardGame

崩溃类的问题换这个:

hdc hilog | grep -E "JsError|FATAL|CppCrash"

六、这条路值不值

对「只想验证一个想法」的场景,云端路径明显更划算:环境是现成的,工具链是现成的,注意力全在代码上。

代价也有:首次进环境要等,网络差的时候界面会慢半拍;容器有使用时长,长时间挂着会消耗额度,不用的时候记得关。

如果是要长期迭代的项目,本地环境该装还是得装。云端更适合「今天想看看这个案例长什么样」这种轻量场景。

最后

从 clone 到手机上能玩,顺利的话二十分钟。真正花时间的从来不是那几条命令,而是版本对不对、路径对不对、设备连没连上。

这三件事确认完,剩下的就是等编译进度条。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。