Weex系列(9) —— Weex和安卓升級相容

weixin_33806914發表於2019-03-13

目錄

最近剛升級,先新開一章記錄一下吧,怕忘了(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);
    }

clipboard.png

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

在升級的過程中主要遇到的就是下面這個錯誤:

clipboard.png

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

我這邊改完如圖:
clipboard.png

最後還是感謝大家,如果喜歡歡迎點贊收藏啊~

相關文章