HarmonyOS鸿蒙Next中Shared Library模块如何引用Native C++模块?
HarmonyOS鸿蒙Next中Shared Library模块如何引用Native C++模块? 有几个c++的类,在项目里创建了Native C++模块,并且构建了.so。 在Shared Library如何跨模块引用呢?
问题已解决。 附上教程:
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++模块:
- 在Shared Library的
build-profile.json5
中配置依赖关系,添加对Native C++模块的引用:
"dependencies": {
"local": {
"your-native-module": "../path/to/native-module"
}
}
-
在Native C++模块中确保已正确导出符号(通过
__attribute__((visibility("default")))
或CMake的SHARED
配置)。 -
在Shared Library的C++代码中使用
#include
包含Native模块的头文件,并链接对应的.so库。 -
在CMakeLists.txt中通过
target_link_libraries
添加Native模块的库依赖。
注意确保两个模块的ABI兼容性,并正确配置NDK工具链。