HarmonyOS鸿蒙Next中NDK开发时,生成HAR包时,如何删除掉libc++_shared so这个so库不集成到har包里

HarmonyOS鸿蒙Next中NDK开发时,生成HAR包时,如何删除掉libc++_shared so这个so库不集成到har包里 使用NDK时,会自动生成一个libc++_shared.so的库,如何不要打包到har包里,我使用了napiLibFilterOption中的excludes,但是没有效果,依然会打入har包中的lib目录下,如果我有多个NDK项目,每个项目都存在这样的一个so库,包大小就会增加,所以怎么可以排除掉?

3 回复

请参考:在模块级中加入 

"nativeLib":
{
  "filter":
  {
    "excludes":[
    "*/Libc++_shared.so"]
  }
}

更多关于HarmonyOS鸿蒙Next中NDK开发时,生成HAR包时,如何删除掉libc++_shared so这个so库不集成到har包里的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中进行NDK开发时,生成HAR包时如果不希望集成libc++_shared.so库,可以通过修改构建配置文件来实现。具体步骤如下:

  1. 打开项目的build.gradle文件。
  2. ndk配置块中,添加arguments参数,指定不使用libc++_shared.so库。例如:
    ndk {
        arguments '-DANDROID_STL=c++_static'
    }
    
  3. 保存并重新构建项目。

通过上述配置,构建时将使用c++_static而不是c++_shared,从而避免将libc++_shared.so集成到HAR包中。

在HarmonyOS鸿蒙Next中进行NDK开发时,若希望生成的HAR包中不包含libc++_shared.so库,可以在CMakeLists.txt中通过设置ANDROID_STLc++_static来静态链接C++标准库,从而避免生成libc++_shared.so。具体配置如下:

set(ANDROID_STL c++_static)

这样,编译时将使用静态库而非动态库,从而生成的HAR包中不会包含libc++_shared.so

回到顶部