环境

系统基线:OpenHarmony 5.1.0 release

 

问题描述

开机后打开web相关应用,web页面白屏,无内容显示。

 

问题分析

检查hilog日志,检查webview相关的error日志,发现web组件依赖的libarkweb_engine.so加载失败

 

根因分析

1、根据日志定位到代码处:

 

2、发现错误日志并没有体现加载so失败原因。通过dlopen加载so失败时,查看原因可通过加上:

const char* error = dlerror();

然后将error信息打印出来。

通过添加错误信息,我们可发现libarkweb_engine.so依赖的libvulkan.so没有找到:

在out/产品名/目录下搜索libvulkan.so,发现并没有编译中间产物和生成的so。

 

3、查找OH基线生成libvulkan.so的组件,可通过在BUILD.gn文件中搜索关键字vulkan,根据经验可优先搜索下third_party目录。

可以看到vulkan_loader动态库组件output_name即为vulkan,后缀output_extension为so,还有一个vulkan_headers的依赖项。

4、将第3点中的部件添加到产品配置项参与编译。

将third_party子系统的vulkan-loader和vulkan_headers两个部件加入到vendor/产品目录下的config.json产品配置中。

5、执行产品编译后,确认编译产物:

可以看到libvulkan.so生成成功。

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐