HarmonyOS 鸿蒙Next .so文件使用求教 小白进公司遇难题:安卓或ios的.so文件如何使用?创建了c++的har包,复制文件后显示乱码,求助!有没有大佬能指点一二?

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next .so文件使用求教
小白进公司遇难题:安卓或ios的.so文件如何使用?创建了c++的har包,复制文件后显示乱码,求助!有没有大佬能指点一二?

公司给了四个文件夹,里面都各有一个.so文件,直接开始学习的鸿蒙,不太懂,没有看到文档有具体怎么,在掘金找了一篇,但是我的.so文件都打不开,是乱码,ai说是二进制编码,怎么查看.so文件和使用啊,求帮助啊,崩溃了

cke_3730.png


更多关于HarmonyOS 鸿蒙Next .so文件使用求教 小白进公司遇难题:安卓或ios的.so文件如何使用?创建了c++的har包,复制文件后显示乱码,求助!有没有大佬能指点一二?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

9 回复

.so文件是编译好的so库,若查看具体内容需要查看源码;如果需要使用,可以在Native侧集成so库集成方式主要有两种:

1. Native侧直接集成:将生成的so库置于entry/libs对应架构的目录下,并将其对应的头文件放置到cpp目录下。修改CMakeLists.txt,将so库加入到工程中编译引用。然后在native侧引入头文件使用。

2. Native侧通过dlopen方式集成:将生成的so库置于entry/libs目录下,通过ArkTS侧传递沙箱路径到native侧,然后直接在native侧使用dlopen方式调用。注意:该方式引用的so库源码在编译时必须使用extern "C" {}包裹起来,即函数必须是使用C编译模式编译的

具体可以参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-ndk-5-V5

更多关于HarmonyOS 鸿蒙Next .so文件使用求教 小白进公司遇难题:安卓或ios的.so文件如何使用?创建了c++的har包,复制文件后显示乱码,求助!有没有大佬能指点一二?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


想问一下大佬鸿蒙是没用jni.h这个引用吗,这种是怎么解决呢,拿到源码了,导入进去jni这句就报错

jni.h是Java Native Interface头文件,是java开发工具包的一部分,可以看一下这个介绍https://blog.csdn.net/m0_51429482/article/details/135091358,建议编译成so库来集成引用

.so是编译好的库,你要去要源码

好的好的,我再去联系一下老板,小白哭死,感谢感谢

想问一下大佬鸿蒙是没用jni.h这个引用吗,这种是怎么解决呢,拿到源码了,导入进去jni这句就报错

jni是安卓的吧

在HarmonyOS(鸿蒙)系统中使用.so文件(动态链接库)与在Android中的使用方式有相似之处,但具体实现细节可能因系统版本和构建工具链的不同而有所差异。对于你提到的在鸿蒙中使用C++生成的.so文件,以下是一些基本步骤:

  1. 确保文件格式正确.so文件应针对鸿蒙系统的架构(如ARM或x86)进行编译。检查编译工具链是否设置为鸿蒙支持。

  2. 放置文件位置:将.so文件放置在应用的lib目录下,确保路径与CMakeLists.txtndk-build脚本中配置的一致。

  3. 修改CMakeLists.txtbuild.gradle:在构建脚本中正确引用.so文件。例如,在CMakeLists.txt中,使用add_librarytarget_link_libraries指令。

  4. 加载库:在C++代码中,使用dlopendlsym动态加载和调用.so文件中的函数,或使用static关键字在编译时静态链接。

  5. 解决乱码问题:乱码可能源于文件编码不匹配或字符集问题。确保源代码文件、构建工具和运行环境使用相同的字符编码(如UTF-8)。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部