智能客服
你问我答,随时在线为你解决问题
解决措施
在ArkTS中引用三方库so需要具备以下三个文件:xxx.so、Index.d.ts和oh-package.json5。其中,Index.d.ts和oh-package.json5在C++模板中自带,也可以手动创建。在需要调用的模块根目录下的oh-package.json5中声明so库的根目录路径。然后在代码中使用import语句引用oh-package.json5中声明的依赖名称。此方案仅适用于已经适配了Native的so库。因此,在编译生成so库时,需要实现功能函数并注册其Native侧接口,同时提供对应的Native侧接口声明文件Index.d.ts和配置文件oh-package.json5。
- "dependencies": {
- "libimportthirdpartylibraries.so": "file:./src/main/cpp/types/libimportthirdpartylibraries",
- "libapplication.so": "file:./src/main/cpp/types/libapplication"
- },
- import testNapi from 'libimportthirdpartylibraries.so';
- import myNapi from 'libapplication.so';
-
- @Entry
- @Component
- struct Index {
- @State message: string = 'Hello World';
-
- build() {
- Row() {
- Column() {
- Text(this.message)
- .fontSize(50)
- .fontWeight(FontWeight.Bold)
- .onClick(() => {
- console.info(`MyTest NAPI 2 + 3 = ${myNapi.add(2, 3)}`);
- console.info(`MyTest NAPI 2 - 3 = ${testNapi.sub(2, 3)}`);
- })
- }
- .width('100%')
- }
- .height('100%')
- }
- }
运行结果:

参考链接