鸿蒙Next如何安装多模块的hsp包

在鸿蒙Next系统上,如何正确安装包含多个模块的hsp包?我尝试按照官方文档操作,但总是提示模块依赖关系错误。请问具体的安装步骤是什么?是否需要修改配置文件?有没有成功案例可以参考?

2 回复

鸿蒙Next安装多模块HSP包?简单!就像拼乐高:先确保每个模块都编译成.hsp文件,然后通过DevEco Studio的依赖配置一键引入。记得在module.json5里声明好兄弟模块,最后点击“Build”让系统自动组装。如果报错,八成是模块名写错了——别问我怎么知道的(手动狗头)

更多关于鸿蒙Next如何安装多模块的hsp包的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next中安装多模块HSP(Harmony Shared Package)包,需要通过DevEco Studio进行配置和构建。以下是详细步骤:

1. 项目配置

  • 在项目根目录的build-profile.json5中,确保声明所有HSP模块:
    {
      "app": {
        "signingConfigs": [],
        "products": []
      },
      "modules": [
        {
          "name": "entry",
          "srcPath": "./entry"
        },
        {
          "name": "hsp1",  // 第一个HSP模块
          "srcPath": "./hsp1"
        },
        {
          "name": "hsp2",  // 第二个HSP模块
          "srcPath": "./hsp2"
        }
      ]
    }
    
  • 每个HSP模块需在自身的build-profile.json5中配置类型为"sharedLibrary"
    {
      "apiType": "stageMode",
      "buildOption": {
        "externalNativeOptions": {}
      },
      "targets": [
        {
          "name": "default",
          "runtimeOS": "HarmonyOS"
        }
      ],
      "type": "sharedLibrary"  // 关键:声明为共享包
    }
    

2. 依赖配置

  • 在Entry模块或其他依赖HSP的模块中,添加对HSP的依赖(在对应模块的build-profile.json5中):
    "dependencies": [
      {
        "bundleName": "com.example.hsp1",
        "moduleName": "hsp1"  // 依赖的HSP模块名
      },
      {
        "bundleName": "com.example.hsp2",
        "moduleName": "hsp2"
      }
    ]
    

3. 构建与安装

  • 通过DevEco Studio的Build > Build HAP(s) 或命令行工具(如./gradlew build)编译项目。
  • 生成的HAP文件将自动包含HSP依赖。使用hdc工具安装到设备:
    hdc install entry.hap
    
  • 系统会自动处理HSP的安装和加载。

4. 动态加载(可选)

  • 若需运行时动态加载HSP,可使用AbilityContextloadHsp方法:
    import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
    
    let context = ...; // 获取AbilityContext
    const hspName = "com.example.hsp1";
    try {
      await context.loadHsp(hspName);
      console.log("HSP加载成功");
    } catch (error) {
      console.error("HSP加载失败: " + error);
    }
    

注意事项:

  • 包名一致性:确保HSP的bundleName在所有配置中一致。
  • 签名:所有HAP/HSP必须使用相同证书签名。
  • 版本匹配:HSP的API版本需与主应用兼容。

完成以上步骤后,多模块HSP即可随主应用安装到设备。如有复杂依赖,建议通过DevEco Studio的依赖图检查配置。

回到顶部