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库。
开发步骤
- 将已经适配HarmonyOS的so库文件置于entry/libs对应的架构目录下。
- 在src/main/cpp/types下新建目录并将接口文件index.d.ts、配置文件oh-package.json5移动到该目录下。
- 在模块级oh-package.json5中声明so库根目录路径。
// entry/oh-package.json5
{
// ...
"dependencies": {
// ...
// 声明的依赖名称应与引用的so库名称一致
"libxxx.so": "file:./src/main/cpp/types/libxxx"
}
}
- 在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库文件,需遵循以下步骤:
- 配置NDK环境:确保NDK已安装并配置好环境变量。
- 创建C/C++项目:使用NDK工具链创建C/C++项目,编写所需的本地代码。
- 编写CMake/Android.mk:创建CMakeLists.txt或Android.mk文件,配置编译选项和库依赖。
- 编译生成so库:使用NDK的
ndk-build
或CMake命令编译代码,生成对应的so库文件。 - 集成到ArkTS项目:将生成的so库文件放入ArkTS项目的
src/main/cpp/libs
目录,并在build.gradle
中配置JNI路径。
通过以上步骤,ArkTS项目即可调用so库中的本地方法。