HarmonyOS鸿蒙Next中Shared Library模块如何引用Native C++模块?

HarmonyOS鸿蒙Next中Shared Library模块如何引用Native C++模块? 有几个c++的类,在项目里创建了Native C++模块,并且构建了.so。 在Shared Library如何跨模块引用呢?

3 回复

问题已解决。   附上教程:

1、在Shared Library模块里的oh-package.json5文件里这样引入

"libkernelrrm.so":"file:../../common/kernelRrm/src/main/cpp/types/libkernelrrm",

libkernelrrm 是so库的名字。   file目录要精确到types。

2、在Shared Library模块的arkts 类里

import nativeModule from 'libkernelrrm.so'

3、调用c++ 方法。

nativeModule.callNative(10, 3)

更多关于HarmonyOS鸿蒙Next中Shared Library模块如何引用Native C++模块?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,Shared Library模块可通过Native API引用Native C++模块。使用NAPI框架进行C++代码绑定,在模块的build-profile.json5中配置native依赖。通过napi_value实现JS与C++数据交互,调用SystemLoadLibrary加载动态库。

在HarmonyOS Next中,Shared Library模块可以通过以下方式引用Native C++模块:

  1. 在Shared Library的build-profile.json5中配置依赖关系,添加对Native C++模块的引用:
"dependencies": {
  "local": {
    "your-native-module": "../path/to/native-module"
  }
}
  1. 在Native C++模块中确保已正确导出符号(通过__attribute__((visibility("default")))或CMake的SHARED配置)。

  2. 在Shared Library的C++代码中使用#include包含Native模块的头文件,并链接对应的.so库。

  3. 在CMakeLists.txt中通过target_link_libraries添加Native模块的库依赖。

注意确保两个模块的ABI兼容性,并正确配置NDK工具链。

回到顶部