5.0+的Cordova是使用gradle來編譯項(xiàng)目而不是ant,按講配置好gradle環(huán)境(GRADLE_HOME和PATH)的話應(yīng)該沒有問題的叹括,但實(shí)際編譯過程中會(huì)報(bào)如下錯(cuò)誤魂莫。
分析上面的截圖可知實(shí)在下載Gradle的時(shí)候報(bào)錯(cuò)隅熙,但直接通過下載鏈接下載確實(shí)OK的沐旨,十分不解。經(jīng)過一番Search還是在萬能的Stackoverflow中找到了類似問題(不得不說噪伊,度娘搜索真不咋地):http://stackoverflow.com/questions/29874564/ionic-build-android-error-when-download-gradle吆视、stackoverflow.com/questions/31260967/gradle-2-2-1-error-when-run-cordova-build-command-on-cli和http://stackoverflow.com/questions/30413485/install-gradle-for-using-in-cordova-build-android典挑。
上述三個(gè)Question和筆者遇到的問題一樣,原因基本都解釋為Proxy問題啦吧,但又都沒有給出直接的解決辦法,看來這個(gè)問題確實(shí)很復(fù)雜拙寡。在Answer里面大概給出了三個(gè)間接解決方法:
1授滓、強(qiáng)制使用ant編譯(Binggo!!!)
2、直接修改源文件中的下載鏈接
3肆糕、把Gradle下載到本地后再修改源文件下載鏈接
1般堆、強(qiáng)制使用ant
在編譯和運(yùn)行時(shí)分別鍵入如下命令
cordova build android -- --ant
cordova run android -- --ant
實(shí)踐證明,該方案可行诚啃,可以解決編譯錯(cuò)誤問題且不需要修改源文件淮摔。
若出現(xiàn)類似于Unable to resolve target 'android-XX’的錯(cuò)誤,解決辦法進(jìn)入你的android project跟目錄始赎,找到此文件 project.properties(或default.properties)和橙,找到target=android-XX出現(xiàn)此錯(cuò)是因?yàn)槟愕腶ndroid環(huán)境跟此處不對(duì)應(yīng),那么造垛,你只需要將此處的android版本改成你機(jī)器上配置的android版本即可魔招。
2、直接修改源文件下載鏈接
在D:gitdemoplatformsandroidcordovalib?uild.js文件的第345和346行分別定義了distributionUrl五辽,如下所示:
var distributionUrlRegex = /distributionUrl.*zip/;
var distributionUrl = 'distributionUrl=http\://services.gradle.org/distributions/gradle-2.2.1-all.zip';
方法二把
http\://services.gradle.org/distributions/gradle-2.2.1-all.zip
修改為
http://services.gradle.org/distributions/gradle-2.2.1-all.zip
經(jīng)實(shí)踐办斑,該方法不可行。
3杆逗、先下載到本地再修改下載鏈接
通過http://services.gradle.org/distributions/gradle-2.2.1-all.zip把gradle.zip下載的本地并復(fù)制到D:gitdemoplatformsandroidgradle目錄中并把源文件中的disributionUrl修改為
var distributionUrl = '../gradle-2.2.1-all.zip';
方法三比方法二靠譜點(diǎn)乡翅,但仍然會(huì)報(bào)如下錯(cuò)誤,還需要再研究研究罪郊。
4蠕蚜、下集預(yù)告
目前看來,還是強(qiáng)制使用ant編譯比較靠譜排龄,在天朝GFW的威懾下波势,gradle貌似不太給力(Android Studio老編譯不成功十有八九也是這個(gè)問題)。
在初步解決編譯問題后下一節(jié)將介紹如何使用Cordova開發(fā)WebAPP橄维。