目錄
- 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"
}
我這邊改完如圖:
最後還是感謝大家,如果喜歡歡迎點贊收藏啊~