abiFilters 配置不生效的问题 (HarmonyOS 鸿蒙Next)

abiFilters 配置不生效的问题 (HarmonyOS 鸿蒙Next) 【设备信息】Mate60

【API版本】Api13

【DevEco Studio版本】5.0.7.200

【问题描述】

abiFilters 配置不生效,如下

{
  "apiType": "stageMode",
  "buildOption": {
    "externalNativeOptions": {
      "abiFilters": [
        "arm64-v8a"
      ]
    },
  },
  "targets": [
    {
      "name": "default"
    }
  ]
}

指定了 abiFilters 为 arm64-v8a 但是打包出来的包中还是有其他架构的so文件,应该怎么写?


更多关于abiFilters 配置不生效的问题 (HarmonyOS 鸿蒙Next)的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

可以在模块级的build-profile.json5buildOption下配置,排除掉arm64-v8a以外的架构。如下是排除架构示例:

'nativeLib': {
  'filter': {
    "excludes": [
    "/架构名称/.so"
    ]
  }
}

比如:

"buildOption": { //配置项目在构建过程中使用的相关配置
  "nativeLib": {
    "filter": {
      //排除的.so文件
      "excludes": [
      "**/3.so", //排除所有名称为“3”的so文件
      "**/x86_64/*.so //排除所有x86_64架构的so文件
      ],
    }
  },

参考文档: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V14/ide-hvigor-build-profile-V14#section511142752919

更多关于abiFilters 配置不生效的问题 (HarmonyOS 鸿蒙Next)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙Next)开发中,abiFilters 配置用于指定应用程序支持的CPU架构。如果 abiFilters 配置不生效,可能的原因包括:

  1. 配置文件位置错误:确保 abiFilters 配置在 build.gradle 文件的正确位置。通常应放在 defaultConfigflavor 配置块中。

  2. Gradle版本不兼容:检查项目使用的Gradle版本是否与HarmonyOS开发环境兼容。某些Gradle版本可能对 abiFilters 的支持不完全。

  3. 构建缓存问题:尝试清理项目构建缓存,使用 ./gradlew clean 命令清除缓存后重新构建。

  4. NDK配置问题:如果项目使用了NDK,确保NDK配置正确,且NDK版本与HarmonyOS开发环境兼容。

  5. 依赖库冲突:检查项目中是否存在依赖库冲突,某些依赖库可能覆盖了 abiFilters 配置。

  6. HarmonyOS SDK版本问题:确保使用的HarmonyOS SDK版本支持 abiFilters 配置,某些旧版本可能存在兼容性问题。

  7. 构建脚本错误:检查构建脚本中是否存在错误或遗漏,确保 abiFilters 配置正确应用。

  8. IDE配置问题:如果使用IDE进行开发,确保IDE的配置与项目构建配置一致,避免IDE自动生成的配置覆盖 abiFilters

如果以上检查均无问题,建议查阅HarmonyOS官方文档或相关开发社区,获取更详细的技术支持。

回到顶部