Gradle Version ,
Android Plugin Version,
classpath 'com.android.tools.build:gradle:2.2.0-rc1',
buildToolsVersion"25.0.2"
apply plugin:'com.android.application'
这些配置到底都具体对应着什么,相互间有什么联系,一直都很模糊。
最近在翻看Gradle for Android,大概了解了一点,先记录一下。不对之处请狠狠指出!
1.Gradle Version
如果设置了Gradle Wrapper,一般都是gradle-wrapper.properties这个文件里面配置的版本号:distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
对应应该是gradle的语言版本。
对于wrapper书中有介绍:
The Gradle Wrapper provides a batch file on Microsoft Windows and a shell script on other operating systems. When you run the script, the required version of Gradle is downloaded (if it is not present yet) and used automatically for the build. The idea behind this is that every developer or automated system that needs to build the app can just run the wrapper, which will then take care of the rest. This way, it is not required to manually install the correct version of Gradle on a developer machine or build server. Therefore, it is also recommended to add the wrapper files to your version control system.
大意是不用手动去下载工程需要的gradle版本,wrapper会自动去下载该工程需要的版本。所以./gradlew 这个指令 后面的w应该就是指的wrapper把。(比如$ gradlew assembleDebug等)
以及,gradle wrapper主要由 一个批处理文件,一个jar,一个配置文件gradle-wrapper.properties组成,书中有介绍就不多说了。。
2 Android Plugin Version,classpath'com.android.tools.build:gradle:2.2.0-rc1',
Android Plugin Version这个应该和classpath'com.android.tools.build:gradle:2.2.0-rc1', 这项配置是对应的。 安卓插件版本。
书中第一句话确实也说了,这个classpath 就是android build tools的 maven仓库地址,android plugin也是来自于这个build tools. android plugin提供了构建和测试一个application的所有tasks,在module中,如果是application类型的module,就要在module级的build.gradle下 加入
applyplugin:'com.android.application',或者是library类型的module,就applyplugin:'com.android.library',
第二章对Android plugin有说明:
The Android plugin is written and maintained by the Android Tools team at Google, and provides all tasks needed to build, test, and package Android applications and libraries.
So,Android build tools == Android Plugin??
3.buildToolsVersion"25.0.2"
书中Page22:
这个build tools 就要与 Android build tools区分一下了,这个提供了一些 aapt,zipalign,dx等 命令行工具,可以通过sdk manager下载。
4.apply plugin:'com.android.application'
上面已经说过了,来自于....Android build tools.
So,大概梳理了一下,大概就是Android build tools(Android Plugin)的某些版本 对应Gradle的某些版本(具体对应关系可以百度),然后 build tools(buildToolsVersion)是在android plugin配置完成之后,在build file的android block下 配置的一个 构建工具版本。
接下来如果再看到这个错误,Plugin is too old 就应该知道了是Android build tools太老了,classpath'com.android.tools.build:gradle:2.2.0-rc1',改一下应该就ok了,知道原理就不用去百度了~~