問題
之前在使用ionic2時使用建立android平台命令或者編譯時,總是會在獲取gradle時卡住,等很久進度也不變化,導致命令超時失敗。於是經過查閱資料和自己實踐測試,總結出以下辦法。
方法
其實主要原因是用命令下載時用的是指定的下載途徑(可能不該這樣形容,歡迎大家評論批評指正),國內通過這樣下載十分慢,甚至時斷時續,從而導致出現上面的問題。
所以我們自己去下載gradle,存放在本地,然后更改配置文件,使其不去網上下載而是從我們指定的本地位置獲取。
首先我們打開下面這個js:
你的項目名稱/platforms/android/cordova/lib/builders/GradleBuilder.js
其中有對distributionUrl的默認定義:
var distributionUrl = process.env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'] || 'http\\://services.gradle.org/distributions/gradle-2.14.1-all.zip';
我的是2.14.1版本,大家的版本可能不一樣,但是方法是一樣的,接下來我們只要修改這句就行了。
我們可以進入上面代碼中的網址里找到對應版本的gradle進行下載:
http://services.gradle.org/distributions/
幫大家拿出來了,直接打開就好。
下載的gradle不需要解壓。
存放到如下路徑:
你的項目名稱/platforms/android/gradle
然后把上面我們找到的代碼修改成:
var distributionUrl = process.env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'] || '../gradle-2.14.1-all.zip';
搞定。
當然存在其他路徑也是沒問題的,不過要想到跨域問題,所以我們需要在響應路徑開啟本地服務。
此時地址就改成本地並加上對應開啟服務的端口號。
var distributionUrl = process.env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'] || 'http://127.0.0.1:8081/gradle-2.14.1-all.zip';
也搞定了。
彩蛋
ionic2打包android的app打開時很長時間白屏的簡單解決方法:
在用ionic build android
命令時,在后面加上--prod
參數,即使用ionic build android --prod
命令。
我的demo以前10幾秒啟動,加--prod
編譯后4秒啟動。
優化ionic2程序啟動速度方法貌似還有不少,以后有時間專門研究一下寫一篇全面點的。
謝謝大家閱讀到最后,有什么問題歡迎交流!