HarmonyOS 鸿蒙Next中自己用napi调用c++去实现的一个sfm的算法库实际生成了libsfm.so,但运行时报错,经逐行排查代码发现是libsfm.so所依赖的其他库的问题,这个在hilog中没有明确打印,是否能够在hilog中加上这类打印,不然调试很不方便。

HarmonyOS 鸿蒙Next中自己用napi调用c++去实现的一个sfm的算法库实际生成了libsfm.so,但运行时报错,经逐行排查代码发现是libsfm.so所依赖的其他库的问题,这个在hilog中没有明确打印,是否能够在hilog中加上这类打印,不然调试很不方便。 自己用napi调用c++去实现的一个sfm的算法库实际生成了libsfm.so,但运行时报错,经逐行排查代码发现是libsfm.so所依赖的其他库的问题,这个在hilog中没有打印,只打印了模块加载失败,但没有具体的原因,是否能够在hilog中加上更明确的打印,不然调试的时候很不方便。


更多关于HarmonyOS 鸿蒙Next中自己用napi调用c++去实现的一个sfm的算法库实际生成了libsfm.so,但运行时报错,经逐行排查代码发现是libsfm.so所依赖的其他库的问题,这个在hilog中没有明确打印,是否能够在hilog中加上这类打印,不然调试很不方便。的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

开发者您好,可以采取以下方式解决:

在日志内搜索关键字".so",可以查看未正确导入/打开失败的依赖文件的具体信息。

更多关于HarmonyOS 鸿蒙Next中自己用napi调用c++去实现的一个sfm的算法库实际生成了libsfm.so,但运行时报错,经逐行排查代码发现是libsfm.so所依赖的其他库的问题,这个在hilog中没有明确打印,是否能够在hilog中加上这类打印,不然调试很不方便。的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS中,Hilog默认不显示动态库依赖缺失的详细错误。可通过配置Hilog过滤器提升日志级别来捕获更多信息。使用hilog -L命令或修改代码中的Hilog标签级别,例如设置LOG_DEBUGLOG_ERROR级别,以输出依赖库加载失败的详细信息。此外,检查设备上的/system/lib/vendor/lib路径确保依赖库存在。

在HarmonyOS Next中,HiLog默认不会详细打印动态库依赖缺失的具体信息,这确实增加了调试难度。目前系统仅提示模块加载失败,但未明确缺失的依赖库名称。

你可以通过以下方式增强调试信息:

  1. 在C++代码中手动添加日志输出,使用OH_LOG_Print在库加载初始化阶段打印依赖库的加载状态。
  2. 检查依赖库的路径配置,确保所有依赖项已正确打包到应用中。
  3. 使用系统工具(如ldd等效命令)预先验证so文件的依赖完整性。

虽然HiLog自身未提供依赖解析的详细日志,但通过代码中主动添加检查点,可以定位具体缺失的库。

回到顶部