问题描述
日常编译新项目时,类我型的萌新或是无Android经验的同事多次会遇到:
本地开发环境已经搭建好,项目拉下来就是运行不了,自动拉闸,大写懵逼! 还会很无辜地来一句"我啥也没动"。
比如如下的错误(感谢汪哥赞助此图):
剧情经过
(对剧情不感兴趣的可直接跳至小结)
把/app
目录下build.gradle
文件的buildTool版本改为的"buildToolsVersion "25.0.0"
,然后点击各种“确认”或sync Now
就欧力gay了?抱歉,汪哥用的是VSCode。
So, 手动修改,手动编译,进入/Android
目录执行gradlew.bat
,windows命令行窗口至此目录(可直接在文件资源管理器的地址栏输入:cmd
),运行: gradlew clean
进行清理。清理意外中断,哦?提示Plugin is too old
,插件版本太低。嗯,走,去改改项目根目录下的build.gradle
,修改Plugin
:
classpath 'com.android.tools.build:gradle:2.2.3'
复制代码
为什么要选2.2.3
? 经查,汪哥没有开VPN。不过好在设置了代理,项目根目录下gradle.properties
,咦!
systemProp.http.proxyHost=registry.npm.taobao.org
systemProp.http.proxyPort=80
复制代码
不过为了不必要的等待,可以去看看汪哥的C盘,说不定有资源找到:C:\Users\{用户名}\.gradle\wrapper\dists
,看到:
- Gradle Version
gradlew-wapper.properties
文件里的distributionUrl
所指向的版本。- 这里还有
distributionBase=GRADLE_USER_HOME
和distributionPath=wrapper/dists
,配置distributionUrl
后gradle
会去本地的distributionBase
下的distributionBase
(一般就是C:\Users\{用户名}\.gradle\wrapper\dists
)找目标版本对应的文件,如果有就直接加载使用,没有就去distributionUrl
下载,没有VPN的同学建议设置一下代理,如何设置上面已有提及。
- Android Plugin
项目根目录下的build.gradle的
com.android.tools.build
:
classpath 'com.android.tools.build:gradle:2.2.3'
复制代码
- Build Tools
/app
目录下build.gradle
文件的buildToolsVersion
。
不好,这里又好像要科学上网才能进。好吧,只能使用某度搜索了,找到这篇博客。
小结
在Android的开发过程中,gradle工具能帮我们高效开发,但是gradle插件的工具包的下载时常回造成长时间的等待,所以需要充分利用本地资源避免gradle工具包的下载。
复制代码
-
- 查看本地
C:\Users\{用户名}\.gradle\wrapper\dists
,了解本地的gradle工具哪些可用。
- 查看本地
-
- 参照此表,调整
Plugin version
与Gradle version
。(其中Plugin version
在项目所对应的"bulid.gradle"文件的classpath
,Gradle version
在"gradle-wrapper.properties"文件的distributionUrl
)
- 参照此表,调整
-
- 当本地无合适的gradle版本工具时,有VPN的直接下载,没有的直接设置代理,或者都可以直接去网路上download。