HarmonyOS ArkTS调用so库

1,通过devEco studio生成so库。

2,将so复制到工程libs目录下。

3,在entry目录下oh-package.json5配置信息。

4,在src/main/cpp/types/libentry下建并且配置index.d.ts 和oh-package.json5。

5,在pages文件使用import testNapi from 'libentry.so'。

6,代码使用testNapi.add(2, 3)。

7,报错 :

[ArkRuntime Log] TypeError: Cannot read property add of undefined
06-25 00:20:44.989 11804-7448 C03f00/ArkCompiler
E [ArkRuntime Log] at anonymous (entry/src/main/ets/pages/CategoryPage.ets:146:42)
HarmonyOS
6天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

1、使用HarmonyOS工具链编译 C++ 的源码,打包成HarmonyOS可以识别的so库,可以参考https://wentao-du.gitee.io/the-north-remembers/#/toolchains/third-party-libraries的动态库编译章节。

2、引入三方库,可以参考 https://gitee.com/openharmony-sig/tpc_c_cplusplus/blob/master/lycium/doc/app_calls_third_lib.md

引入三方库的几个要点:

2.1 entry/libs创建对应的目录,放入编译的三方库。

2.2 src/main/cpp 按照指定可以创建 thirdparty/三方库名称/不同平台的目录,lib 目录放入so库,include 放入 .h文件,注意thirdparty文件名称是固定的,不要改名字。

2.3 CMakeLists.txt文件中引入thirdparty 的 so 库路径和include文件路径。

3、添加 node-api接口,实现ArkTs和C++的相互调用,可参考:[https://gitee.com/openharmony-sig/tpc_c_cplusplus/blob/master/docs/thirdparty_knowledge.md###%E5%8C%97%E5%90%91%E5%BA%94%E7%94%A8%E4%B8%AD%E4%BD%BF%E7%94%A8](https://gitee.com/openharmony-sig/tpc_c_cplusplus/blob/master/docs/thirdparty_knowledge.md

分享
微博
QQ
微信
回复
6天前
相关问题
ArkTS项目如何调用已有SO?
1043浏览 • 1回复 待解决
HarmonyOS ohosTest调用so失败
120浏览 • 1回复 待解决
HarmonyOS ArkTS如何调用.so
77浏览 • 1回复 待解决
HarmonyOS 怎么调用现有的so
48浏览 • 1回复 待解决
HarmonyOS ArkTS调用JS
68浏览 • 1回复 待解决
HarmonyOS ArkTS如何引入和调用JS
341浏览 • 1回复 待解决
ArkTS侧与Native侧分别如何动态加载SO
2576浏览 • 1回复 待解决
ArkTS中如何使用编译出来的Native so
517浏览 • 1回复 待解决
HarmonyOS ArkTS如何调用web前端的js
149浏览 • 1回复 待解决
HarmonyOS 引用so报红
88浏览 • 1回复 待解决
HarmonyOS 引用so程序崩溃
68浏览 • 1回复 待解决
HarmonyOS 如何适配自己的so
614浏览 • 1回复 待解决
HarmonyOS so的正确引用方式
87浏览 • 1回复 待解决
如何在HarmonyOS app使用so
57浏览 • 1回复 待解决
ArkTS 和.so交互的问题
352浏览 • 1回复 待解决
HarmonyOS 如何减小module中so大小
122浏览 • 1回复 待解决
HarmonyOS 多个.a链接生成so报错
65浏览 • 1回复 待解决
JNI soHarmonyOS 重新编译工具
120浏览 • 1回复 待解决
HarmonyOS 调用C
169浏览 • 1回复 待解决