HarmonyOS 鸿蒙Next NAPI接口调用第三方so时出现闪退问题

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

HarmonyOS 鸿蒙Next NAPI接口调用第三方so时出现闪退问题

按官方文档创建NAPI的Hello项目,然后更换依赖的so库项目代码,将相同的工程代码,编译输出的so为libstreamparse.so,执行到原NAPI接口的add接口时会闪退,修改输入so名称为libhello.so(仅修改库名,编译源码不变),是正常的。 请问输入的外部so名称变化,除了这个CMakeLists的内容要修改,工程中还有哪些地方要修改?

2 回复
在arkts侧import时so的名字要改:如import testNapi from 'libstreamparse.so;

经验证把libs下的三个动态库改名成libStreamParse.so,CMakeLists的内容改成:IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/libs/${OHOS_ARCH}/libStreamParse.so)可以正常调用Parse_Initialize();

针对HarmonyOS 鸿蒙Next NAPI接口调用第三方so时出现闪退问题,这通常是由于多种原因导致的。首先,确保NAPI接口的使用符合鸿蒙系统的规范,特别是多线程环境下的调用,napi_resolve_deferred等函数必须运行在创建它的同一线程中,否则会导致闪退。

其次,检查第三方so库是否与鸿蒙系统兼容,以及是否正确链接到项目中。在CMakeList.txt中配置target_link_libraries时,要确保路径和库名无误。

此外,还需注意以下几点:

  • 确保应用拥有足够的权限来加载和执行第三方so库。
  • 检查代码中是否存在内存泄漏或不正确的内存管理,这也可能导致应用闪退。
  • 使用鸿蒙开发者工具获取详细的错误信息,并仔细分析堆栈跟踪以确定问题发生的位置。

如果以上步骤均无法解决问题,建议联系鸿蒙系统的官方支持团队或访问鸿蒙开发者社区寻求帮助。官网客服地址是:https://www.itying.com/category-93-b0.html

回到顶部