android stuido 的gradle 版本如下位置可以看到:
而android gradle插件的版本 如下:
以上两者是存在关联的,如果版本关系不对应,android studio则提示我们更新其中一个,他们的关联关系如下:
插件版本号 | 需要的 Gradle 版本号 |
---|---|
1.0.0 - 1.1.3 | 2.2.1-2.3 |
1.2.0-1.3.1 | 2.2.1-2.9 |
1.5.0 | 2.2.1-2.13 |
2.0.0-2.1.2 | 2.10-2.13 |
2.1.3-2.2.3 | 2.14.1+ |
2.3.0+ | 3.3+ |
3.0.0+ | 4.1+ |
3.1.0+ | 4.4+ |
3.2.0-3.2.1 | 4.6+ |
3.3.0-3.3.2 | 4.10.1+ |
而当android 的插件更新到3.0以上时,其中的依赖指令也有了变化。
即当 插件版本大于classpath ‘com.android.tools.build:gradle:3.0.0’ 时。
之前的依赖指令 compile 则需要换成 implementation 或者api。
api和implementation和区别:
- api
api和compile一模一样。插件版本更新后,将compile换成api没有点问题。 - implementation
3.0之后加入了这个,这个和api的区别在于 api范围比implementation 大。
即:当多module 时,例如有A,B两个module 时,当B module 需要引入一个第三方类库,则推荐使用implementation,但是这样一来的话,当A module想要调用这个第三方库时,则不能调用。这个时候使用api则可以调用。谷歌这样做则是想更可能的去解耦。