如何在鸿蒙开发中编译打包的时候在hap包中仅编译指定的so库?

如何在鸿蒙开发中编译打包的时候在hap包中仅编译指定的so库?

阅读 854
2 个回答

在编译打包的时候在 hap 包中仅编译指定的 so 库,在 build-profile.json5 中配置:

// 配置筛选 har 依赖.so 资源文件的过滤规则
"nativeLib": {
  "filter": {
    // 按照.so 文件的优先级顺序,打包最高优先级的.so 文件
    "pickFirsts": [
    "**/1.so"
    ],
    // 按照.so 文件的优先级顺序,打包最低优先级的.so 文件
    "pickLasts": [
    "**/2.so"
    ],
    // 排除的.so 文件
    "excludes": [
    "**/3.so", // 排除所有名称为“3”的 so 文件
    "**/x86_64/*.so" // 排除所有 x86_64 架构的 so 文件
    ],
    // 允许当.so 重名冲突时,使用高优先级的.so 文件覆盖低优先级的.so 文件
    "enableOverride": true
  }
}

如果你想打包最高优先级的.so文件,可以使用pickFirsts数组来指定;如果需要排除某些.so文件,可以使用excludes数组来列出需要排除的.so文件名或路径模式;此外,通过设置enableOverride为true,可以允许在.so文件重名冲突时,使用高优先级的文件覆盖低优先级的文件。

{
  // ... 其他配置 ...
  "nativeLib": {
    "filter": {
      "pickFirsts": [
        "**/1.so"
      ],
      "pickLasts": [
        "**/2.so"
      ],
      "excludes": [
        "**/3.so", // 排除所有名称为“3”的 so 文件
        "**/x86_64/*.so" // 排除所有 x86_64 架构的 so 文件
      ],
      "enableOverride": true
    }
  }
  // ... 其他配置 ...
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题