android weex跳转闪退,Android Weex集成和踩坑 指南
Weex官网地址:https://weex.apache.org/zh/docs/components/list.html
首先集成Weex
导入gradle依赖:implementation 'com.taobao.android:weex_sdk:0.20.3.0-beta' implementation 'com.alibaba:fastjson:1.2.48'
implementation 'com.android.support:recyclerview-v7:28.0.0'
Application初始化配置: InitConfig config = new InitConfig.Builder()
//图片库接口
.setImgAdapter(new IWXImgLoaderAdapter())
//网络库接口
.setHttpAdapter(new DefaultWXHttpAdapter())
.build();
WXSDKEngine.initialize(this, config);
开始Activity的配置: //初始化
WXSDKInstance mWXSDKInstance = new WXSDKInstance(this);
//weex加载成功的监听
mWXSDKInstance.registerRenderListener(this);
//开始加载页面。bundleUrl网页的url
mWXSDKInstance.renderByUrl(getPackageName(), bundleUrl, null, null, WXRenderStrategy.APPEND_ASYNC);
//weex成功创建view,需要将view添加到你的布局中
public void onViewCreated(WXSDKInstance instance, View view)
//weex创建失败,常见的就是初始化失败(一般因为so原因)、api28不支持http明文请求、js方法错误等
public void onException(WXSDKInstance instance, String errCode, String msg) 还有两个方法就不多做介绍,大家都看得懂。其他的配置看官方文档即可。
weex的简单集成完成了,几乎都是官方文档的东西,不多介绍,请大家看去官网查看https://weex.apache.org/zh/guide/develop/integrate-to-android-app.html
开始今天的坑 android集成Weex Playground
第一点:
gradle依赖不一致,各位一定要严格按照官方文档

对应添加这三个 依赖,想要调试Weex Playground,这三个缺一不可
implementation 'com.taobao.android:weex_inspector:0.20.3.0-beta'
implementation 'com.squareup.okhttp:okhttp:2.3.0'
implementation 'com.squareup.okhttp:okhttp-ws:2.3.0'
weex官网默认是okhttp而不是okhttp3,下方是okhttp3的依赖
compile 'com.squareup.okhttp3:okhttp:3.4.1'
compile 'com.squareup.okhttp3:okhttp-ws:3.4.1'
注意:

根据官方文档,你要使用Weex Playground,需要修改一个url地址,这个地址一定会有一个weex的sdk所引用,也就是DebugServerProxy这个类,你的要是没有,那就可能是依赖导入不对。
/**
* 清理weex
*/
protected void destroyWeexInstance() {
if (mInstance != null) {
mInstance.destroy();
mInstance.registerRenderListener(null);
mInstance = null;
}
}
在合适的时候一定要清理weex,不然会在h5调试端,报多个实例不存在
第二点:
ndk { abiFilters "armeabi", "x86" }
weex仅支持这两种cpu架构,如果你添加了其他的架构(列如:armeabi-v7a),weex会初始化异常
erroecode -1001 degradeToH5|createInstance fail|wx_create_instance_error isJSFrameworkInit==false reInitCount == 1
如果你的项目集成了Realm数据库,就会出问题,Realm已经抛弃了旧版armeabi,使用armeabi-v7a,如果你不添加armeabi-v7a,Realm就会闪退。你要是ndk添加了armeabi-v7a,默认weex就会去v7下寻找so,但是并不会生成so文件,就出初始化异常。目前我的解决办法就是 将armeabi中的weex所有so复制一份,然后手动复制到项目的jniLibs/armeabi-v7a 目录下。⚠️注意,更新weex sdk的时候一定要记得更换jniLibs/armeabi-v7a 目录下的so,不然依旧初始化失败。
第三点:
weex sdk 0.18.0版本 绘制闪退
com.taobao.weex.ui.view.border.borderdrawable.draw(borderdrawable.java:114)

断点位置,h5 使用渐变的时候,导致weex闪退,仅限旧版本,更新最新版本够没有此问题。
大致就这些,有什么遗漏的,请大家留言、评论
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
