HarmonyOS鸿蒙Next中含HNP包的HAP应用在安装时总是返回code:9568409

HarmonyOS鸿蒙Next中含HNP包的HAP应用在安装时总是返回code:9568409

问题

我参照下述指南尝试使用HNP功能,但总在安装时失败。

失败后返回如下代码和错误信息:

error: failed to install bundle.
code:9568409
error: Failed to install the HAP because the extract of the native package failed.

但查阅文档后获得的信息令我感到困惑,cke_38877.png;然而我是通过打包工具使用指南里说的方式打包的应用,打包命令如下:

java -jar "C:\Program Files\Huawei\DevEco Studio\sdk\default\openharmony\toolchains\lib\app_packing_tool.jar" --mode hap --json-path "D:\Project\OpenHarmony.NET\OpenHarmony.Avalonia\OHOS_Project\entry\build\default\intermediates\package\default\module.json" --resources-path "D:\Project\OpenHarmony.NET\OpenHarmony.Avalonia\OHOS_Project\entry\build\default\intermediates\res\default\resources" --ets-path "D:\Project\OpenHarmony.NET\OpenHarmony.Avalonia\OHOS_Project\entry\build\default\intermediates\loader_out\default\ets" --out-path "D:\Project\OpenHarmony.NET\OpenHarmony.Avalonia\OHOS_Project\entry\build\default\outputs\default\entry-default-unsigned-hnp.hap" --hnp-path "D:\Project\OpenHarmony.NET\OpenHarmony.Avalonia\OHOS_Project\entry\build\default\outputs\default\native" --lib-path "D:\Project\OpenHarmony.NET\OpenHarmony.Avalonia\OHOS_Project\entry\build\default\intermediates\libs" --index-path "D:\Project\OpenHarmony.NET\OpenHarmony.Avalonia\OHOS_Project\entry\build\default\intermediates\res\default\resources.index" --pack-info-path "D:\Project\OpenHarmony.NET\OpenHarmony.Avalonia\OHOS_Project\entry\build\default\outputs\default\pack.info" --pkg-context-path "D:\Project\OpenHarmony.NET\OpenHarmony.Avalonia\OHOS_Project\entry\build\default\intermediates\loader\default\pkgContextInfo.json" --force true

产出的HAP包内容如下:

cke_66765.pngcke_67835.png

HNP包是存在的,但却在安装时说不存在了。

猜测

HNP包问题?

HNP包内容如下:

cke_148578.png

{
  "type": "hnp-config",
  "name": "AOOHConsole",
  "version": "1.1",
  "install": {
    "links": [
      {
        "source": "/bin/AOOH_Console",
        "target": "aoohconsole"
      }
    ]
  }
}

HNP包功能为“获得入参string[]的第一个string并返回其长度,如果没有则返回-1”。代码如下:

namespace AOOH_Console;

internal class Program
{
    private static int Main(string[] args)
    {
        return args.FirstOrDefault()?.Length ?? -1;
    }
}

最终产物是一个架构为linux-musl-arm64的控制台应用。

打包该HNP使用的命令如下:

hnpcli pack -i "D:\Project\OpenHarmony.NET\OpenHarmony.Avalonia\AOOH_Console\AOOHConsole" -o "D:\Project\OpenHarmony.NET\OpenHarmony.Avalonia\OHOS_Project\entry\hnp\arm64-v8a"

证书问题?

证书为手动申请的调试证书,也许是需要某个ACL权限?

权限配置问题?

module.json5的权限配置错了?文件内容如下:

{
  "module": {
    "name": "entry",
    "type": "entry",
    "description": "$string:module_desc",
    "mainElement": "EntryAbility",
    "deviceTypes": [
      "phone",
      "tablet",
      "2in1",
      "car"
    ],
    "deliveryWithInstall": true,
    "installationFree": false,
    "pages": "$profile:main_pages",
    "abilities": [
      {
        "name": "EntryAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ets",
        "description": "$string:EntryAbility_desc",
        "icon": "$media:layered_image",
        "label": "$string:EntryAbility_label",
        "startWindowIcon": "$media:startIcon",
        "startWindowBackground": "$color:start_window_background",
        "exported": true,
        "orientation": "auto_rotation",
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "action.system.home"
            ]
          }
        ]
      }
    ],
    "extensionAbilities": [
      {
        "name": "EntryBackupAbility",
        "srcEntry": "./ets/entrybackupability/EntryBackupAbility.ets",
        "type": "backup",
        "exported": false,
        "metadata": [
          {
            "name": "ohos.extension.backup",
            "resource": "$profile:backup_config"
          }
        ],
      }
    ],
    "hnpPackages": [
      {
        "package": "AOOHConsole.hnp",
        "type": "private"
      }
    ]
  }
}

留言

此问题略有困难,感谢给位开发者或工程师的帮助。CodeArts IDE项目用了这个功能,但他们也许是因为太忙了或是此功能还不完善并没有留下什么可以查到的使用指导。


更多关于HarmonyOS鸿蒙Next中含HNP包的HAP应用在安装时总是返回code:9568409的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

暂时还没有遇到过这样的场景感谢楼主的邀请,后续我会尝试复现这个场景,有解决方案了我们再深入交流

更多关于HarmonyOS鸿蒙Next中含HNP包的HAP应用在安装时总是返回code:9568409的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


问题已解决,打包命令打入libs时少了default文件夹。

找HarmonyOS工作还需要会Flutter技术的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

java -jar "C:\Program Files\Huawei\DevEco Studio\sdk\default\openharmony\toolchains\lib\app_packing_tool.jar" --mode hap --json-path "D:\Project\OpenHarmony.NET\OpenHarmony.Avalonia\OHOS_Project\entry\build\default\intermediates\package\default\module.json" --resources-path "D:\Project\OpenHarmony.NET\OpenHarmony.Avalonia\OHOS_Project\entry\build\default\intermediates\res\default\resources" --ets-path "D:\Project\OpenHarmony.NET\OpenHarmony.Avalonia\OHOS_Project\entry\build\default\intermediates\loader_out\default\ets" --out-path "D:\Project\OpenHarmony.NET\OpenHarmony.Avalonia\OHOS_Project\entry\build\default\outputs\default\entry-default-unsigned-hnp.hap" --hnp-path "D:\Project\OpenHarmony.NET\OpenHarmony.Avalonia\OHOS_Project\entry\build\default\outputs\default\native" --lib-path "D:\Project\OpenHarmony.NET\OpenHarmony.Avalonia\OHOS_Project\entry\build\default\intermediates\libs\default" --index-path "D:\Project\OpenHarmony.NET\OpenHarmony.Avalonia\OHOS_Project\entry\build\default\intermediates\res\default\resources.index" --pack-info-path "D:\Project\OpenHarmony.NET\OpenHarmony.Avalonia\OHOS_Project\entry\build\default\outputs\default\pack.info" --pkg-context-path "D:\Project\OpenHarmony.NET\OpenHarmony.Avalonia\OHOS_Project\entry\build\default\intermediates\loader\default\pkgContextInfo.json" --force true

安装失败代码9568409通常由HNP包签名问题导致。请检查以下事项:HNP包是否使用正确的调试/发布证书签名;证书是否过期;包名和BundleName是否与配置一致;设备系统版本是否支持该HAP特性。验证签名信息与应用配置的匹配性可解决此问题。

错误代码9568409表示HNP包在安装过程中提取失败。根据你提供的配置和打包过程,问题可能出在HNP包的路径或配置上。

检查HNP包的路径是否正确指向了实际的HNP文件,确保打包时HNP包已正确生成并位于指定目录。此外,确认HNP包的配置(如config.json)与module.json5中的声明一致,包括文件名和类型。

建议重新验证HNP包的生成步骤,确保其与HAP打包命令中的路径匹配。如果问题依旧,检查HNP包的内容是否完整且符合格式要求。

回到顶部