首先这些机型报错是提示插件初始化失败,请先检查网络,然后重启应用。查看代码发现是TbsState监听失败,所以考虑是不是权限请求问题,在android6.0前,所有的权限都只需要在Manifest中写,在6.0后推出了运行时权限。用户不必再安装软件时就授权所有的权限,而是在运行时需要用到什么权限就申请什么权限。所以我增加了运行时权限的代码,然后就可以了,但是打包到sit测试时,发现不能每次都成功,有时候还是会复现缺陷,然后得重装以后才能使用。
查找资料发现很多人使用时遇到了坑。在Application 的onCreate方法中 X5内核在第一次安装初始化过程中,初始化时间大概是30秒左右,此时程序不能杀死,也不能直接去尝试打开pdf ,也不能去尝试使用webview打开网页 直到看到Log 出现 “加载内核是否成功:true ” 然后去使用X5内核(理解为第一次初始化会去下载所需文件到程序内一些内容, 中途杀死程序,会造成文件下载不完全 ,第二次启动程序后因为文件下载了部分,不会在去尝试下载全部文件了,X5内核就会频繁加载失败,所以中途失败,要卸载了程序,重新安装去加载X5内核文件)。
当前我们只有在需要浏览文件时才会去初始化组件。所以尝试在应用初始化还没创建webview时就初始化X5内核。在application的oncreate方法中调用下面的初始化方法
/**************腾讯X5webview**************/
private void initX5WebView() { //使用腾讯x5 webview,解决安卓原生wenview不适配不同机型问题
//搜集本地tbs内核信息并上报服务器,服务器返回结果决定使用哪个内核。
QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {
@Override
public void onViewInitFinished(boolean arg0) {
/

本文介绍了在Android系统中,使用TBS浏览本地文件时遇到的初始化失败问题,特别是针对部分机型。问题根源在于TbsState监听失败和运行时权限管理。通过增加运行时权限代码,虽然在一定程度上解决了问题,但在某些情况下仍然会复现。解决办法是在Application的onCreate方法中提前初始化X5内核,确保在需要使用前完成所有必要的下载和设置,从而避免因中途退出导致的内核加载失败。经过这样的调整,问题得到了彻底解决。
最低0.47元/天 解锁文章
2740

被折叠的 条评论
为什么被折叠?



