關於ionic2打包android時gradle下載不了的解決方法(附:簡單優化啟動速度彩蛋)


問題

之前在使用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程序啟動速度方法貌似還有不少,以后有時間專門研究一下寫一篇全面點的。

謝謝大家閱讀到最后,有什么問題歡迎交流!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM