
浏览器hap,在3.2是正常的,在4.1报错如下:
Version:1.0.0
VersionCode:1000000
PreInstalled:Yes
Foreground:Yes
Pid:1867
Uid:20010023
Reason:TypeError
Error name:TypeError
Error message:Cannot read property WebviewController of undefined
SourceCode:
this.webControllerArray = [new WebObject(new web_webview.WebviewController(), false)];
^
Stacktrace:
at Browser (entry/src/main/ets/model/Browser.ets:55:61)
at Index (entry/src/main/ets/pages/Index.ets:28:28)
at func_main_0 (Index.ets:206:14)
附件为完整log,怀疑是nweb异常,请问应该如何解决?
行 38491: 07-25 19:16:21.249 338 338 E C02c11/APPSPAWN: [appspawn_nweb.cpp:116]Fail to dlopen libweb_engine.so, [Error relocating /system/lib/libnative_image.so: eglDupNativeFenceFDANDROID: symbol not found]
行 38492: 07-25 19:16:21.250 338 338 E C02c11/APPSPAWN: [appspawn_nweb.cpp:122]Fail to dlopen libnweb_render.so, [(null)]

PFNEGLDUPNATIVEFENCEFDANDROIDPROC eglDupNativeFenceFDANDROIDFunc =(PFNEGLDUPNATIVEFENCEFDANDROIDPROC)eglGetProcAddress("eglDupNativeFenceFDANDROID");
可以试试,如下(非Mesa3D也可以使用,即去掉OHOS_MESA3D宏也可以使用),如果有效果,可以点下采纳:

需要确认下游览器的 hap 包是基于 3.2 还是 哪个版本编译出来的,还有就是系统环境也麻烦提供下,不同的系统版本,SDK 升级后一般会有一些 api 升级变更。
你可以参考下 4.1 Release 下的 Browser 这里的写法

从提供的 标记内容来看,OpenHarmony)的Web相关的类和方法有关。在4.1版本中,浏览器应用报错,错误信息指出Cannot read property WebviewController of undefined
,这表明在尝试访问WebviewController
对象时出现了未定义的问题。
根据提供的代码片段,this.webControllerArray = [new WebObject(new web_webview.WebviewController(), false)];
这一行似乎是在创建一个WebObject
实例,但可能在4.1版本中web_webview.WebviewController
这个类或其引用发生了变化或者不再可用。由于错误码提到的401和17100001,这可能是API权限问题或者是某个功能被移除或重构。
为了解决这个问题,你可以尝试以下步骤:
检查版本兼容性:确保你的代码与OHOS 4.1的Webview API兼容。查阅最新的文档,确认
WebviewController
是否在新版本中有所更改或者已被替换。更新依赖:如果
WebviewController
已经被新的类或接口取代,可能需要更新你的代码以使用新的API。错误处理:添加适当的错误检查和异常处理,比如在创建对象之前检查它是否存在,或者提供一个默认值或回退机制。
日志分析:结合Hilog日志中的其他信息(如行38491和38492的错误),可能与
libweb_engine.so
和libnweb_render.so
的加载问题有关。确保这些库在你的应用中正确地被链接和加载。查阅更新文档:查看OHOS 4.1的官方更新日志或API变更说明,了解是否有关于
WebviewController
或其他相关类的重大更改。测试用例:创建一个最小可复现的测试场景,只包含必要的代码来触发错误,以便更容易定位问题所在。
如果问题与提供的数据无关,请告知我,我可以进一步帮助。
