x5内核加载失败修复步骤,腾讯x5内核加载失败

首页 > 实用技巧 > 作者:YD1662023-06-12 08:58:30

为什么不使用原生的webview?

最近公司的项目接入了webview,但是坑巨多无比,尤其是其内存泄露。所以我在想是否可以有第三方封装了webview。

比较Crosswalk与TBS服务

1.Crosswalk这玩意儿我没用过,据说是很流畅和强大,但是有一点是我暂时无法接受的,接入Crosswalk的话会导致APP的体积增大20M左右 ~ 所以我就放弃了,不过大家想研究的话那就自己去百度吧 !(嘿嘿,微笑脸)

2. TBS,腾讯出品,其实有点坑,本来也准备接入一下支付宝和淘宝都用的UC的内核的Webview的,但是我看了一下,需要审核,有点麻烦 ~

开始配置

  1. 首先需要去网站腾讯TBS浏览服务 进行注册,吐槽一点,需要验证身份证信息,坑爹的一比
  2. 参考一下TBS接入文档 不过里面讲解的比较啰嗦,不太清楚。
  3. a. 简单来讲的话就是 首先下载SDK和官方DEMO:完整版SDK和官方DEMO ,然后进行导入jar包和so文件 。jar包直接复制官方DEMO里面的,然后导入library。so文件的话直接复制Demo里面的文件夹jniLibs,到src/main/jniLibs

x5内核加载失败修复步骤,腾讯x5内核加载失败(1)


  1. b. 不过在这里有个很坑的点是需要对so文件进行配置的,由于X5暂时不提供64位so文件,但是现在绝大部分手机都是64位的,所以为了保证64位手机能正常加载x5内核,需要进行配置。配置方法参考:64位手机无法加载x5(libmttwebview.so is 32-bit instead of 64-bit)。

defaultConfig {

ApplicationId "com.jzt.mytbsdemo"

minSdkVersion 15

targetSdkVersion 25

versionCode 1

versionName "1.0"

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

//配置so文件

ndk {

abiFilters "armeabi", "armeabi-v7a", "x86", "mips"

}

//注意:这里之所以将这以下的代码注释掉,是因为我们已经到src/main/jniLibs里面导入了so文件,如果是在libs里面导入的so文件的话,则用以下代码 !

//android studio默认so文件加载目录为:src/main/jniLibs

//如在module的build.gradle按照如下方式,自定义了so文件加载目录请确保对应目录下只有armeabi目录

// sourceSets {

// main{

// jniLibs.srcDirs = ['libs']

// }

// }

c. OVER了,于是的话就这样将SDK配置完成了。

3.添加权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

4 . 配置Application

public class BaseApplicatiom extends Application {

@Override

public void onCreate() {

super.onCreate();

//初始化X5内核

QbSdk.initX5Environment(this, new QbSdk.PreInitCallback() {

@Override

public void onCoreInitFinished() {

//x5内核初始化完成回调接口,此接口回调并表示已经加载起来了x5,有可能特殊情况下x5内核加载失败,切换到系统内核。

}

@Override

public void onViewInitFinished(boolean b) {

//x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。

Log.e("@@","加载内核是否成功:" b);

}

});

}

}

//别忘了在Manifest里面配置Appliaction的名字 !

<application

android:name=".BaseApplicatiom"

5 . Application里面配置key ,name一定得设置为: QBSDKAppKey

<meta-data

android:name="QBSDKAppKey"

android:value="PpeRpHjyzL5vTlc9LuNrRmHM" />

</application>

  1. 其它的都和Webview一样了,不过我看官方文档说的是只要出现水滴就是成功了,其实是错误的 ! ! ! 我的好几个APP都没有用TBS,但是也是水滴的。于是我找了好久,终于找到了这个测试的方法,绝对是niubility的~ X5内核加载问题自动检测工具发布啦

啦啦啦啦。。。下班了,明天再补充吧!!!

咳咳,回来了,继续啦啦啦啦 ~

7 . 经过测试以后得到的是这个,证明已经接入成功了!:

x5内核加载失败修复步骤,腾讯x5内核加载失败(2)

—————————————————————————————————-

是时候放出源代码了!——> TBS不官方不坑人の源代码

—————————————————————————————————-

About QA:

无法接入成功

SDK接入问题

判断接入问题

腾讯X5内核的集成和使用

Android WebView使用总结

—————————————————————————————————-

Expand QA:

AgentWeb

Android WebView使用总结

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.