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