因为实习岗位要求,我不得不加入前端大军。公司开发的项目采用ionic。好在据说这样的Hybrid框架简单易学,只好半路出家,扛起枪就上了。
但是在最初环境搭建和项目build的过程中遇到了不少问题。前前后后花了一周的时间才处理好。
现在说说我遇到的问题,希望能够给大家一些参考,少走一些弯路。
Exception in thread "main" java.lang.RuntimeException: java.net.SocketTimeoutException: Read timed out
balabala ,总之是遇到关于gradle的timeout的问题了。直接上图了,情况如图:
于是在网上搜了很久,最终在stackoverflow上找到了解决方案。
网址如下http://stackoverflow.com/questions/29874564/ionic-build-android-error-when-download-gradle。现在我把两个高票答案总结一下:
第一个答案是让我们自己手动下载gradle的压缩包,然后将脚本里的下载链接(下载gradle的 )直接更换成绝对路径。
既然第一个官方路径走得通,那我还是走第一个路径吧。
仔细讲一讲第一个方法:0
在第一次失败的build中,已经生成了一个名为gradle的文件夹。路径如下:
platforms\android\gradle
下载gradle压缩包,并把压缩包拷贝到以上路径。地址如下:http://gradle.android-studio.org/
并在platforms\android\cordova\lib\builders\gradlebuilder.js 里 找到distributionUrl,将其改为:注意版本
var distributionUrl = process.env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'] || '../gradle-2.2.1-all.zip';
第二个答案是让我们绕过gradle,采用迂回战术生成APK文件。
You can also force CLI to use Ant instead of gradle during a build with the following command:
意思是:直接在命令行下输入如下命令,在构建过程中用Ant代替gradle。我也不知道为什么,以前基本没接触过(逃)
cordova build android -- --ant
不出所料,在改了grandle之后还是报错了。
是这样报错的:
Could not resolve all dependencies for configuration ':_DebugCompile'
于是又参考了stackoverflow的答案,链接奉上http://stackoverflow.com/questions/33675491/could-not-resolve-all-dependencies-for-configuration-armv7debugcompile/33675539
打开了Android SDK Manager,找到extra下的 Android Support Repository ,下载。
然后 BUILD SUCCESSFUL
撒花。喜极而泣。
2017-3-15-----------------------------------------更新
ionic 项目文件请务必放在英文目录下方。否则build android也会失败。