大家好,我是阿赵。
这里尝试一下用团结引擎发布纯鸿蒙系统的应用。
一、 安装鸿蒙系统发布需要的组件
在团结引擎的Hub里面找到Add modules:
然后找到OpenHarmony的支持选项,由于我已经安装过了,所以会显示Installed,如果没有安装过,会显示勾选项,勾上并且安装就行。如果看到有NodeJS的项,这里也可以一起安装。不过我的团结Hub不知道为什么没有NodeJS,所以就不能通过Hub安装。
二、 尝试发布
在团结引擎里面,简单做了个场景,显示了一行字:
然后在发布界面,选择OpenHarmony,切换到该平台
接下来,点击Build ,选择一个目录进行发布。
这时候发布失败,查看报错:
CommandInvokationFailure: Unable to sync.
F:\work\projectTuanjie\HongmengTest/Temp/StagingArea\OpenHarmonyAppTemplate/hvigorw.bat
–sync -p product=default --no-daemonstderr[
] stdout[
ERROR: NODE_HOME is not set and no ‘node’ command could be found in
your PATH.Please set the NODE_HOME variable in your environment to match the
location of your NodeJs installation. ] exit code: 1
出现这个NODE_HOME的保存,其实就是因为刚才在Hub里面没有找到NodeJS安装导致的。
所以现在需要自己手动安装一下NodeJS。
三、 安装NodeJs
去NodeJS的主页下载安装包:网址
由于我之前在网上查询到需要NodeJS12版本,所以我就选择了v12的版本来下载:
下载完之后安装:
然后添加NODE_HOME的环境变量:
NODE_HOME,变量值为安装路径
再在系统变量的【path】中添加
%NODE_HOME%
%NODE_HOME%\node_global
%NODE_HOME%\node_cache
这个时候,在cmd里面输入node -v,可以看到NodeJS是已经成功安装了,版本是v12.22.12:
然后到设置里面的扩展工具,设置NodeJS的路径:
接下来再次尝试Build,然后还是报错:
CommandInvokationFailure: Unable to sync.
F:\work\projectTuanjie\HongmengTest/Temp/StagingArea\OpenHarmonyAppTemplate/hvigorw.bat
–sync -p product=default --no-daemonstderr[ npm notice created a lockfile as package-lock.json. You should
commit this file. npm WARN notsup Unsupported engine for pnpm@7.30.0:
wanted: {“node”:“>=14.6”} (current:
{“node”:“12.22.12”,“npm”:“6.14.16”}) npm WARN notsup Not compatible
with your version of node/npm: pnpm@7.30.0 npm WARN tools No
description npm WARN tools No repository field. npm WARN tools No
license field.
从报错可以看出,是因为NodeJS的版本不对,这里提示需要>=14.6
所以再次回到NodeJS主页,下载v14的版本:
再次安装。需要注意的是,如果不是通过Hub安装的,在扩展工具里面会提示我们Node.js的SDK版本不支持。不用管它,设置完就行了。
这里有些朋友可能会问,我直接安装最新的NodeJS行不行?从理论上来说是行的,因为它的提示只是>=14.6 。
但由于NodeJS从某个版本,好像是18开始,就开始启用corepack来管理包,然后使用pnpm来代替了npm,所以需要自己手动开启pnpm,然后会发现pnpm版本和corepack的版本问题,导致各种安装的问题。需要花时间去处理:
corepack enable pnpm
Cannot find matching keyid: ${JSON.stringify({ signatures, keys })}
);
所以我为了省事,直接安装v14版本,就没问题了。
四、 再次尝试发布
回到团结引擎,再次Build,这次发现可以正常的发布处鸿蒙应用了,有一个app文件,一个hap文件和一个il2CppBackup文件夹:
把hap文件拖入鸿蒙模拟器:
会报错hap/hsp 中集成的.so缺少"x86_64"abi类型:
其实就是库文件缺少了x86_64支持,回到团结引擎的Player Settings,然后找到Target Architectures,把需要支持的目标都勾选上:
再次发布,然后把hap拖入模拟器,发现安装成功了:
可以运行: