HarmonyOS 鸿蒙Next .so文件使用求教 小白进公司遇难题:安卓或ios的.so文件如何使用?创建了c++的har包,复制文件后显示乱码,求助!有没有大佬能指点一二?
HarmonyOS 鸿蒙Next .so文件使用求教
小白进公司遇难题:安卓或ios的.so文件如何使用?创建了c++的har包,复制文件后显示乱码,求助!有没有大佬能指点一二?
公司给了四个文件夹,里面都各有一个.so文件,直接开始学习的鸿蒙,不太懂,没有看到文档有具体怎么,在掘金找了一篇,但是我的.so文件都打不开,是乱码,ai说是二进制编码,怎么查看.so文件和使用啊,求帮助啊,崩溃了
更多关于HarmonyOS 鸿蒙Next .so文件使用求教 小白进公司遇难题:安卓或ios的.so文件如何使用?创建了c++的har包,复制文件后显示乱码,求助!有没有大佬能指点一二?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
.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库来集成引用
谢谢大佬
好的好的,我再去联系一下老板,小白哭死,感谢感谢
想问一下大佬鸿蒙是没用jni.h这个引用吗,这种是怎么解决呢,拿到源码了,导入进去jni这句就报错
jni是安卓的吧
在HarmonyOS(鸿蒙)系统中使用.so
文件(动态链接库)与在Android中的使用方式有相似之处,但具体实现细节可能因系统版本和构建工具链的不同而有所差异。对于你提到的在鸿蒙中使用C++生成的.so
文件,以下是一些基本步骤:
-
确保文件格式正确:
.so
文件应针对鸿蒙系统的架构(如ARM或x86)进行编译。检查编译工具链是否设置为鸿蒙支持。 -
放置文件位置:将
.so
文件放置在应用的lib
目录下,确保路径与CMakeLists.txt
或ndk-build
脚本中配置的一致。 -
修改
CMakeLists.txt
或build.gradle
:在构建脚本中正确引用.so
文件。例如,在CMakeLists.txt
中,使用add_library
和target_link_libraries
指令。 -
加载库:在C++代码中,使用
dlopen
和dlsym
动态加载和调用.so
文件中的函数,或使用static
关键字在编译时静态链接。 -
解决乱码问题:乱码可能源于文件编码不匹配或字符集问题。确保源代码文件、构建工具和运行环境使用相同的字符编码(如UTF-8)。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html