HarmonyOS 鸿蒙Next 只打包某一架构应该怎么配置

发布于 1周前 作者 itying888 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 只打包某一架构应该怎么配置

第三方架构例如高德,ijkplayer,高德只有arm64-v8a的so库,ijk有arm64-v8a和x86_64的so库,想只留下arm64-v8a的库减少体积,应该怎么做,试了一下moudle 的buildOption,buildOptionSet配置了

"externalNativeOptions":
{
  "abiFilters": [
  "arm64-v8a"]
}

不生效。
以下是高德的依赖和ijk的依赖

"@ohos/ijkplayer": "2.0.4",
"@amap/amap_lbs_common": ">=1.0.2",
"@amap/amap_lbs_map3d": ">=2.0.1",
"@amap/amap_lbs_location": ">=1.0.1",

更多关于HarmonyOS 鸿蒙Next 只打包某一架构应该怎么配置的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

您可以试试以下方案:

使用excludes排除.so文件,罗列的NAPI库将不会被打包。

"nativeLib": {
  "filter": {
    //排除的.so文件
    "excludes": [
      "/3.so", //排除所有名称为“3”的so文件
      "/x86_64/*.so" //排除所有x86_64架构的so文件
    ],
  }
},

参考文档:build-profile.json5-配置文件说明-概述-编译构建-DevEco Studio - 华为HarmonyOS开发者

更多关于HarmonyOS 鸿蒙Next 只打包某一架构应该怎么配置的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)系统中,如果你只想为某一特定架构打包应用,你需要在构建配置文件中指定目标架构。这通常是通过修改build.gradle文件(针对使用ArkUI或JS框架开发的应用)或相应的构建脚本(针对原生开发)来实现的。

具体步骤如下:

  1. 定位构建配置文件:找到你的项目中的build.gradle文件或其他构建脚本。

  2. 修改架构配置

    • 对于ArkUI或JS框架,检查androidharmony配置块,找到ndkabiFilters配置项。
    • 对于原生开发,找到与架构相关的编译选项。
  3. 添加或修改目标架构

    • ndkabiFilters中,仅保留你想要打包的架构,例如armeabi-v7aarm64-v8ax86x86_64
    • 示例(针对ArkUI或JS框架):ndk { abiFilters 'arm64-v8a' }
  4. 重新构建项目:保存配置文件后,重新构建你的项目,确保它只为目标架构生成二进制文件。

如果问题依旧没法解决请联系官网客服, 官网地址是 https://www.itying.com/category-93-b0.html

回到顶部