摘录

本文在25年前已停止更新,作者转鸿蒙原生了,实在是用了太多不支持的api懒得排查了;
感谢你看到这篇文章,祝愿大家前程似锦、鹏程万里!

HBuilder X 4.28版本及以前的无法将cli创建的uniapp打包成鸿蒙离线SDK,报错如下
cli创建的uniapp打包成鸿蒙离线SDK报错

必须要vue3的项目才可以运行到鸿蒙

2024/10/16 更新了一部分文档内没有的报错在文章末尾

开发鸿蒙uniapp文档

1. 下载HUAWEI DevEco Studio,内置Harmony next模拟器

博主使用版本是5.0.3.900
HUAWEI DevEco Studio文档
HUAWEI DevEco Studio下载地址

2. 新建模拟器

  1. Create Project 新建一个示例项目
  2. 点击File Settings Plugins添加中文汉化插件, 搜索Chinese安装后Apply在OK重启
    打开设置
    添加汉化插件
  3. 找到设备管理器,添加模拟器设备
    设备管理器
  4. 修改底部本地模拟器路径,找个内存多的盘新建文件夹存放模拟器
    本地模拟器位置
  5. 点击右下角新建模拟器,修改本地映像位置,博主是与模拟器存放同一盘新建了文件夹,下载第一项Huawei_Phone,点击下一步
    新建模拟器2
  6. 虚拟设备配置时,内存选择6GB,存储空间选择12GB(内存大一些,不然可能会导致模拟器启动失败,具体表现为刚开启,runing一段时间后自动停止)
    虚拟设备配置
  7. 点击完成按钮,新增好之后点击模拟器的绿色播放按钮,尝试启动
  8. 如果提示未开启Hyper-v,可按后续步骤配置,其他错误请参考模拟器启动常见问题
  9. 在控制面板的程序中点击 启动或关闭Windows功能
    控制面板
  10. 开启Hyper-v,Windows虚拟机监控程序平台,虚拟机平台
    在这里插入图片描述
  11. 如果无Hyper-v选项,在桌面新建文本文档,将如下代码粘贴进去,保存后重命名为Hyper.cmd,以管理员身份运行,等待安装Hyper-v结束。安装结束后重复步骤9,关闭Hyper-v后保存,重启电脑。
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
  1. 重启电脑后重复步骤9、步骤10,开启Hyper-v,Windows虚拟机监控程序平台,虚拟机平台。如果Hyper-V无法全部开启提示无法安装hyper-v该固件中的虚拟化支持被禁用,查看后续步骤
  2. 关机后开机,一直点按F2或者F10(因电脑而异)进入BIOS,找到Virtualization Technology(找不到可搜索,一般在system下面),把disable改成enable。开机后重复步骤9、步骤10。再尝试在设备管理器中启动新建的模拟器。

3. uniapp打包成鸿蒙离线sdk

  1. 下载 uni-app 鸿蒙离线SDK template-1.3.4.tgz https://web-ext-storage.dcloud.net.cn/uni-app/harmony/zip/template-1.3.4.tgz

    下载好后解压,将package文件夹复制到项目文件盘,随后改名(英文+下划线)

    如果有多个项目需要运行到鸿蒙,需要重复将package文件夹复制到项目文件盘,随后改名(英文+下划线)步骤,否则会冲突,鸿蒙设备上目前没有基座概念

    此时可用步骤1下载的DevEco打开改名后的文件夹。

  2. 在HBuilder X中点击 工具 设置,找到运行配置,修改鸿蒙运行配置,修改成你安装HUAWEI DevEco Studio的位置(我的浏览路径是D:\Web\Huawei\DevEco Studio\bin\devecostudio64.exe,取bin之前的路径即可)
    在这里插入图片描述

  3. 在HBuilder X中打开你的uniapp项目,修改manifest.json文件源码视图,配置鸿蒙离线SDK路径(即步骤1的解压之后重命名的路径)

"app-harmony": {
	"projectPath": "E:\\deveco_hbuilder"
},

在这里插入图片描述

  1. 点击运行->运行到鸿蒙
    运行到鸿蒙
    之后点击刷新设备,会显示出你启动成功的模拟器设备(一般是ip命名),点击后会进行打包配置,生成harmony-configs文件之后,可点击重新运行

    运行可能会报错,此时可参考uniapp官方文档修改

记录一部分遇到的文档内没有的报错

  1. msg:error: failed to install bundle. code:9568332 error: install sign info inconsistent.
    有两种可能:
    1、由于Hsp、Hap的签名不一致导致的错误,需要确定所有Hsp、Hap是否使用了同一个签名文件。统一签名后再安装,即可解决问题。
    2、设备上已经存在同一包名应用,且已存在应用与正在安装的应用签名不同。卸载应用,再进行安装。
    解决方式:应用包名在 harmony-configs/AppScrope/app.json5 中修改 app.bundleName
  2. "@cashier_alipay/cashiersdk" is imported by "entry/src/main/ets/uni-app-harmony....
    1、manifest.json中app模块管理中开启了支付宝支付,运行到x86设备不能使用支付宝支付,真机可调试
  3. hvigor ERROR: Could not resolve "./uni-installApk/utssdk/app-harmony" from "entry/src/main/ets/uni_modules/index.generated.ets"
    1、停止运行,重新运行后正常打包成功。如果还是报错就重启HBuilderX后运行
Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐