yz0 2017-04-05
问题
之前在使用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程序启动速度方法貌似还有不少,以后有时间专门研究一下写一篇全面点的。
谢谢大家阅读到最后,有什么问题欢迎交流!