替换的Crosswalk原因想必用过的都知道
遇到的问题总结:
错误日志: Caused by: java.lang.RuntimeException: java.lang.RuntimeException: Did not yet override the UI thread
at org.xwalk.core.ReflectConstructor.newInstance(ReflectConstructor.java:54)
at org.xwalk.core.XWalkView.reflectionInit(XWalkView.java:2082)
at org.xwalk.core.XWalkView.(XWalkView.java:261)
解决方法:参考官方给出的方法:
由于crosswalk及quic与x5存在相同的包名,会导致内核默认加载app classLoader中的类,导致内核加载失败或者出现crash,如果您需要解决该问题,可在初始化内核之前添加如下代码:
HashMap map = new HashMap();
map.put(TbsCoreSettings.TBS_SETTINGS_USE_PRIVATE_CLASSLOADER, true);
QbSdk.initTbsSettings(map);// 使用独立ClassLoader进行加载
IX5WebViewExtension ix5 = webview.getX5WebViewExtension();
if (null != ix5) {
ix5.setScrollBarFadingEnabled(false);
}
api ‘com.tencent.tbs.tbssdk:sdk:43939’
我这一直报如下错误,提示依赖包冲突,导致不兼容。
AAPT: error: resource android:attr/dialogCornerRadius not found.
采用jar包方式集成
我这没问题。
- 手机没装腾讯的app,X5首页初始化会下载内核,如果遇到没网的情况,在华为手机上会导致直接闪退,其他手机会自动加载系统内核。并且就算后期网络好了也不会继续下载内核(应该是个bug)
- 手机中装有腾讯的任一app,首次进入X5内核只需要共享内核,无需下载
- 造成崩溃的原因是初始化失败,获取参数的时候报空指针了,我这是这两个方法报空了
X5.getX5WebViewExtension()和X5.getSettingsExtension
,具体看你的报错信息。
解决办法:
QbSdk.clearAllWebViewCache(this,true);