HarmonyOS鸿蒙Next中如何编译生成在ArkTS项目中使用的so库文件?

HarmonyOS鸿蒙Next中如何编译生成在ArkTS项目中使用的so库文件? 有实操经验的解答一下,能提供个案例最好。

6 回复

你的问题问的问题,不知道需要什么,如果只是想要自己编C++生成的SO文件可以去项目文件夹里面找就行了,一般在 项目文件夹\entry\build\default\intermediates\cmake\default\obj\ 里面,有不同架构CPU的 so文件

更多关于HarmonyOS鸿蒙Next中如何编译生成在ArkTS项目中使用的so库文件?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


那请采纳呗,嘿嘿,

您好,可参考官网ArkTS侧引用三方so库的文档,通过配置模块动态依赖即可在工程中引用已经适配HarmonyOS的so库。

开发步骤

  1. 将已经适配HarmonyOS的so库文件置于entry/libs对应的架构目录下。
  2. 在src/main/cpp/types下新建目录并将接口文件index.d.ts、配置文件oh-package.json5移动到该目录下。
  3. 在模块级oh-package.json5中声明so库根目录路径。
// entry/oh-package.json5
{
  // ...
  "dependencies": {
    // ...
    // 声明的依赖名称应与引用的so库名称一致
    "libxxx.so": "file:./src/main/cpp/types/libxxx"
  }
}
  1. 在ArkTS侧使用import引用oh-package.json5中声明的依赖并进行结果验证。
// entry/src/main/ets/pages/Index.ets
import testNAPI from 'libxxx.so';

// 直接使用已经适配Native的so库进行乘法运算
let result = testNAPI.func();

注意事项 在引用过程中除了将已经适配HarmonyOS的libxxx.so库文件置于entry/libs对应的架构目录下外,还需要将编译三方so库时配套产生的libc++_shared.so库文件置于该目录下。

在HarmonyOS鸿蒙Next中,编译生成在ArkTS项目中使用的so库文件,需遵循以下步骤:

  1. 配置NDK环境:确保NDK已安装并配置好环境变量。
  2. 创建C/C++项目:使用NDK工具链创建C/C++项目,编写所需的本地代码。
  3. 编写CMake/Android.mk:创建CMakeLists.txt或Android.mk文件,配置编译选项和库依赖。
  4. 编译生成so库:使用NDK的ndk-build或CMake命令编译代码,生成对应的so库文件。
  5. 集成到ArkTS项目:将生成的so库文件放入ArkTS项目的src/main/cpp/libs目录,并在build.gradle中配置JNI路径。

通过以上步骤,ArkTS项目即可调用so库中的本地方法。

回到顶部