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);
    }

Weex系列(9) —— Weex和安卓升级兼容_第1张图片

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的方法。

在升级的过程中主要遇到的就是下面这个错误:

Weex系列(9) —— Weex和安卓升级兼容_第2张图片

在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"
}

我这边改完如图:
Weex系列(9) —— Weex和安卓升级兼容_第3张图片

最后还是感谢大家,如果喜欢欢迎点赞收藏啊~

你可能感兴趣的