安卓应用现在很多都是基于gradle进行大包,ionic默认的打包命令
cordova build --release android
就是使用gradle进行打包,但同时ionic也支持int这种以前的打包方式。不过需要特定的指出,命令如下。
cordova build android -- --ant
回归正题,我们使用gradle打包的时候需要去下载gradle,很多时候打包失败就是因为我们下载不了gradle,导致超时失败。解决的方法就是我们自己去下载gradle,存放在本地,然后更改配置文件,使其不去下载。
我们找到指定路径的文件,如下:
yourproject/platforms/android/cordova/lib/builders/GradleBuilder.js
其中对distributionUrl的定义:
var distributionUrl = process.env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'] || 'http\\://services.gradle.org/distributions/gradle-2.2.1-all.zip';
我们只要修改这句就行了。
我们下载的gradle(未解压的.zip格式)存放在本地有两种方法:
1)存放到项目文件下下面,对应的路径为
yourproject/platforms/android/gradle
然后修改成:
var distributionUrl = process.env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'] || '../gradle-2.4-all.zip';
这样就可以了。
2)存放在我们电脑其他路径,开启http服务,让url指向我们本地,这样做可以让我们的gradle文件为以后的工程使用。
var distributionUrl = process.env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'] || 'http://127.0.0.1:8080/gradle-2.4-all.zip';
===============分割线=====================
其实我怀疑能直接修改process.env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL']这个参数的路径,使它指向本地的路径,不过目前还没有找到。