鸿蒙导入so库后调用接口失败,如何解决?

鸿蒙导入so库后调用接口失败,如何解决?

image.png

阅读 734
1 个回答

在IDE里面创建的带CPP模块的工程,NDK通过CMake和Ninja编译应用的C/C++代码,编译过程如下图所示。
image.png
核心编译过程如下:根据CMake配置脚本以及build-profile.json5中配置的externalNativeOptions构建参数,与缓存中的配置比对后,生成CMake命令并执行CMake。执行Ninja,按照makefile执行编译和链接,将生成的.so以及运行时依赖的.so同步到输出目录,完成构建过程。通过DevEco Studio提供的应用模板,可以快速生成CMake构建脚本模板,并在build-profile.json5中指定相关编译构建参数。

这种找不到动态库的问题应该是so没有被打包到app中。
要确保在模块的libs目录下有没有对应so,在src的cpp配置中有没有正确的配置:
image.png

oh-package.json5中配置动态库名称:


{
  "name": "libxxx.so",
  "types": "./index.d.ts",
  "version": "",
  "description": "Please describe the basic information."
}

index.d.ts中配置c++对外暴露接口:

export const add: (num1: number, num2: number) => void;
logo
HarmonyOS
子站问答
访问
宣传栏