HarmonyOS鸿蒙Next中uniapp存在多个entny类型的hap包

HarmonyOS鸿蒙Next中uniapp存在多个entny类型的hap包 【问题描述】uniapp打包的项目,在云调试的时候没问题,但是上架的时候说设备存在多个entny类型的hap包,应用安装检测失败,存在无法安装的问题,原因:{“error: failed to install bundle.\ncode:9568287\nerror: install invalid number of entry hap.”}

【问题现象】

cke_2422.png

【版本信息】Hbuilder 4.87

【复现代码】无

【解决方案】无


更多关于HarmonyOS鸿蒙Next中uniapp存在多个entny类型的hap包的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

开发者你好,可参考:【分层架构设计】。根据您这边的截图,按照分层架构的设计规范,不同的entry模块之间,设备类型不能重复。

更多关于HarmonyOS鸿蒙Next中uniapp存在多个entny类型的hap包的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


老师好,应该如何查看这个生成了多个entry模块,我的项目配置文件中只有这配置了设备类型,对应截图放在另一个楼层了。

开发者你好,需要跟您这边确认下,您这边提审上传app包时,app包是否包含两个hap。

老师,确认了一下,只有一个hap包,

uniapp转鸿蒙的设备类型

cke_165.png

在HarmonyOS Next中,uniapp编译生成多个entry类型的hap包是正常现象。每个hap包对应一个独立的模块或功能,如主应用、服务卡片等。这些hap包通过应用模型进行管理,支持独立分发和按需加载。

这个问题是由于在HarmonyOS Next中,一个应用包(.app)内只能包含一个entry类型的HAP包,而你的UniApp项目在打包时生成了多个entry类型的HAP,导致安装失败。

核心原因: UniApp的某些配置或项目结构可能导致其构建流程为同一个应用生成了多个入口模块(entry hap)。在HarmonyOS Next的严格规则下,这是不被允许的。

解决步骤:

  1. 检查并清理项目配置:

    • 打开项目的 manifest.json 文件,确保没有配置生成多个“模块”或“分包”。
    • 检查 build.gradle 或相关构建脚本,确认没有配置多个 entryfeature 模块。
  2. 重新生成证书和Profile文件:

    • 在AppGallery Connect中,确认你为该应用创建的签名证书和HarmonyOS配置文件(.p7b)是正确的,并且与当前打包的Bundle名称(bundleName)完全匹配。一个不匹配的配置可能导致构建系统错误地处理模块。
  3. 调整UniApp的HarmonyOS构建配置:

    • 在HBuilderX中,检查“发行”菜单下的“原生App-HarmonyOS云打包”设置。
    • 尝试在项目的 nativeplugins 目录或相关配置中,检查是否有第三方SDK或插件被错误地配置为独立的entry模块。如果有,需要将其配置为feature类型或合并到主包中。
  4. 检查并精简项目依赖:

    • 某些UniApp插件或本地依赖可能包含其自身的HarmonyOS模块配置,这可能会意外生成额外的entry。尝试暂时移除非核心的插件或依赖,然后重新打包测试,以排查是哪个部分引起了问题。
  5. 使用DevEco Studio进行辅助分析:

    • 将UniApp项目打包后生成的原始HarmonyOS工程(通常位于 unpackage/dist/build/harmony 目录下)导入到DevEco Studio中。
    • 在DevEco Studio中直接打开该工程,查看项目结构。重点关注 entry 目录的数量。正常情况下,应该只有一个 entry 目录(对应一个entry hap)。如果存在多个,你需要回溯UniApp的配置,找出生成多个entry的根源并进行合并。

关键点: 最终你需要确保打包输出的 .app 包内,有且仅有一个标记为 "type": "entry" 的HAP文件。这通常需要通过优化UniApp的项目配置和构建流程来实现。

回到顶部