Weex系列(9) —— Weex和安卓升级兼容
目录
- Weex系列(序) —— 总要知道原生的一点东东(iOS)
- Weex系列(序) —— 总要知道原生的一点东东(Android)
- Weex系列(1) —— Hello World项目
- Weex系列(2) —— 页面跳转和通信
- Weex系列(3) —— 单页面还是多页面
- Weex系列(4) —— 老生常谈的三端统一
- Weex系列(5) —— 封装原生组件和模块
- Weex系列(6) —— webview和web组件
- Weex系列(7) —— 踩坑填坑的总总
- [Weex系列(8) —— 原理流程简析]
- Weex系列(9) —— Weex和安卓升级兼容
最近刚升级,先新开一章记录一下吧,怕忘了(doge)。
1、Weex升级相关
iOS:
pod 'WeexSDK', '0.20.1'
目前来看倒是没有什么问题,后续再说。
Android:
compile 'com.taobao.android:weex_sdk:0.20.0.2'
Android就有问题喽,一堆如下的问题。方法接口什么的直接移除,真是个狠人啊,这个只能大家一个个文件去改喽,官网链接:https://weex.apache.org/zh/gu...
比如我这边是把
public GifImage(WXSDKInstance instance, WXDomObject dom, WXVContainer parent) { super(instance, dom, parent); }
换成:
@Deprecated public GifImage(WXSDKInstance instance, WXVContainer parent, String instanceId, boolean isLazy, BasicComponentData basicComponentData) { this(instance, parent, basicComponentData); } public GifImage(WXSDKInstance instance, WXVContainer parent, BasicComponentData basicComponentData) { super(instance, parent, basicComponentData); }
2、安卓升级相关
升级之前先来解释3个sdk吧:
原文章:https://medium.com/androiddev...
compileSdkVersion
compileSdkVersion是告诉Gradle用哪个版本Android SDK编译应用程序。使用新API的时候,就需要升级对应版本的Android SDK了。
应该强调的是,更改compileSdkVersion不会改变运行时行为。虽然更改compileSdkVersion时可能存在新的编译器警告/错误,但您的compileSdkVersion不包含在您的APK中:它纯粹在编译时使用。 (你应该确实修复这些警告 - 它们是因为某种原因而添加的!)
因此,强烈建议您始终使用最新的SDK进行编译。您将获得对现有代码进行新编译检查的所有好处,避免新弃用的API,并准备好使用新API。
minSdkVersion
如果compileSdkVersion表示能否能用最新API,那minSdkVersion就是应用能运行的最低版本,如果用户的装置小于这个值,在Google Play商店就会不显示。
我在网上搜了一下设置14、15基本就是底线了,能覆盖Google Play商店99.9%的用户吧。
targetSdkVersion
三者中最有趣的是targetSdkVersion。targetSdkVersion是Android 提供向前兼容的主要依据。
比如用户系统是26,现在升级到了27,其中有一个方法26和27是不同的,但是如果应用的targetSdkVersion设置的是26,应用仍旧使用的是26的方法。
在升级的过程中主要遇到的就是下面这个错误:
在stackoverflow上找的解决办法:https://stackoverflow.com/que...
A. Add this line in the defaultConfig section to enable multiDex
multiDexEnabled true
B. Than set the dexOptions, like this:
dexOptions { incremental true javaMaxHeapSize "4G" }
我这边改完如图:
最后还是感谢大家,如果喜欢欢迎点赞收藏啊~