簡單記錄一下加載X5內核失敗原因
成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網綜合服務,包含不限于成都網站制作、網站設計、外貿網站建設、都安網絡推廣、成都小程序開發(fā)、都安網絡營銷、都安企業(yè)策劃、都安品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供都安建站搭建服務,24小時服務熱線:13518219792,官方網址:www.cdcxhl.com
運行官方demo一點毛病也沒有,自己創(chuàng)建modul運行也沒問題 ,一放到自己的項目就永遠初始化失敗,最后發(fā)現(xiàn)是這個原因:
這是官方demo里的配置:
ndk {
? ? ? ? ? ? ? ?//選擇要添加的對應cpu類型的.so庫 不能添加arm64-v8a 不然x5內核加載不上去
? ? ? ? ? ? ? ?abiFilters"armeabi","armeabi-v7a","x86","mips"
}
而我原本項目中為了兼容arm64-v8a 把它arm64-v8a寫進去了,刪掉即可。
如果你也碰到了無法加載x5內核的原因,試試能不能解決你的問題。
集成騰訊的X5,一般都是在application中進行初始化,不過有一個現(xiàn)象就是第一次啟動都睡有一小會產生了UI卡頓,一開始利用IntentService進行后臺線程進行初始化,但還是會產生卡頓現(xiàn)象,不過官方在X5 SDK的v3.6版本后添加了一個多進程的service=?設置開啟優(yōu)化方案。
? ? 如下做法:
第一種 多進程方案: 設置開啟優(yōu)化方案// 在調用TBS初始化、創(chuàng)建WebView之前進行如下配置,以開啟優(yōu)化方案HashMapmap = new HashMap();map.put(TbsCoreSettings.TBS_SETTINGS_USE_SPEEDY_CLASSLOADER, true);QbSdk.initTbsSettings(map);b)?
增加Service聲明 :在AndroidManifest.xml中增加內核首次加載時優(yōu)化Service聲明; 該Service僅在TBS內核首次Dex加載時觸發(fā)并執(zhí)行dex2oat任務,任務完成后自動結束;
service ?android:name="com.tencent.smtt.export.external.DexClassLoaderProviderService"
android:label="dexopt"
android:process=":dexopt"/
第二種 多進程方案:僅Android 5.1+生效)
1、// 在調用TBS初始化、創(chuàng)建WebView之前進行如下配置,以開啟優(yōu)化方案
HashMapmap = new HashMap();
map.put(TbsCoreSettings.TBS_SETTINGS_USE_SPEEDY_CLASSLOADER,true);
QbSdk.initTbsSettings(map);
2、)?
多線程方案策略配置// 在調用TBS初始化、創(chuàng)建WebView之前進行如下配置,以開啟優(yōu)化方案
HashMapmap = new HashMap();
// 配置不使用多進程策略,即該方案僅在Android 5.1+系統(tǒng)上生效。
map.put(TbsCoreSettings.TBS_SETTINGS_USE_DEXLOADER_SERVICE, false);
QbSdk.initTbsSettings(map);
需要引入第三方的框架支持才能用。
富文本可以為用戶提供更加多樣化的文本展示形式,但由于其使用了H5標簽的特殊性,一般都需要第三方框架的支持。這里推薦一款合適的第三方富文本框架,richeditor。
首先我們要使用該功能需要引入相關jar包,然后我們需要解決一個問題,那就是,在富文本編輯器的使用中,5.0以下的系統(tǒng)自帶的webview無法實現(xiàn)刪除圖片的功能。這個漏洞在5.0以后被谷歌公司進行了修復。但是問題來了,公司的軟件是要兼容到4.2系統(tǒng)的,總不能因為這個問題不讓用戶用4.x的手機吧,而且這批用戶還不少,所以需要解決這個問題。我們的思路是替換掉系統(tǒng)的webview,更換第三方自定義webview。這里有一個好的框架推薦就是騰訊的X5內核,內含騰訊重寫的Webview,版本到7.0。這里不重點講述X5內核的好處,我們看一下如何替換。我們看到,RichEditor中最關鍵的一個自定義類是一個叫做RichEditor的類。這是我們布局上輸入富文本區(qū)域的控件。我們看到它的繼承類是WebView。這里咱們把代碼拷貝出來并且重寫該類,并將繼承類換成X5內核中的WebView,這樣我們就可以在這個類中進行其他的一些修改,比如新功能的添加之類的。