HarmonyOS 鸿蒙Next .so的引用demo
HarmonyOS 鸿蒙Next .so的引用demo
1.首先鸿蒙工程里面有c++对应的创建方式,其中的.so文件就可以用来进行外部引入
类似的过程你可以参考一下c++创建的工程案列,因为鸿蒙不支持java了,所以jni文件你要用对应的c或者c++工程改造,原有的c和c++使用的.so文件可以不用动。
分享一下鸿蒙调用c++传输字符串的demo | 华为开发者联盟 (huawei.com),里面有简单的使用
2.引入过程,拷贝对应的.so文件到对应的目录下,图一为原文件,复制到图二的工程文件中libs下面直接放对应的文件,不用加default,图三,图四是.so文件在ts中的引入配置,图5是总文件里面的配置
这个是我自己重新命名的,你新建立一个c++的工程就明白了,里面有对应的文件目录,和我的差不多,就是名字不一样。
我新建了一个鸿蒙c++工程,产出了so(entry/build/libs里取到,比如a.so),然后我又建了一个普通的鸿蒙工程,我可以直接在新工程里使用a.so嘛?还是我新工程也必须是鸿蒙c++工程?
普通工程就行,但是对应的引入文件必须要一定过去
楼主大佬,如果有个旧版Android项目的libxx.so,能怎么引入使用呢?
看了你的例子,好像是在c++产出新的so,没看懂怎么引入旧版Android项目的so
有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html
旧项目的.so文件,你要和ATS关联起来,就需要引用到他对应的文件,你可以理解成为鸿蒙—c++ c++关联旧项目,配置文件 “name”: “libvalidate.so”, “types”: “./index.d.ts”,types配置的.ts文件里面就是需要关联的方法
辛苦楼主能否把这个过程细化一下,感觉就差临门一脚了,执行的时候碰到跟楼上一样的问题。
直接按图这样使用就可以了
第一步:创建Native C++工程编译生成so和napi文件 第二步:创建普通工程,拷贝第一步的产物按截图拷贝到对应目录,运行报错。 能否发下上面的demo工程,是不是本地缺少什么配置
报什么错,第一步和第二步是不同的工程吧,shareC++.so copy过去了吗
libc++_shared.so和libentry.so是使用Native C++工程直接编译生成的so,导入普通工程后按上面流程接入调用后报错
你改一下 entry/src/oh-package.json5, 加上dependencies试试,下面是我的。不过我测试我不加这个也能过去。
{ “name”: “entry”, “version”: “1.0.0”, “description”: “Please describe the basic information.”, “main”: “”, “author”: “”, “license”: “”, “dependencies”: { “@types/libdpsdk.so”: “file:./src/main/ets/libdpsdk” } }
找到问题了,是ide的原因公司申请鸿蒙使用未发版的ide 4.1.3.600 会出现这个问题。有点坑啊
你好,ide使用哪个版本可以正常