Android Studio gradle 文件中 supportLibVersion 用法

一般我们在项目中的gradle会添加如下库文件:

1
2
3
4
5
6
7
dependencies {  
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.android.support:design:23.1.0'
compile 'com.android.support:pallete-v7:23.1.0'
compile 'com.android.support:cardview-v7:23.1.0'
compile 'com.android.support:recyclerview-v7:23.1.0'
}

所以每次升级的时候都要修改后面的23.1.0版本号,Android开发小组的Chris Banes想出了这样的一个方法,不用每次修改每个版本,而只需要修改一次就行了,如下:

1
2
3
4
5
6
7
8
9
10
ext {  
supportLibVersion = "23.1.1"
}

dependencies {
compile "com.android.support:appcompat-v7:${supportLibVersion}"
compile "com.android.support:design:${supportLibVersion}"
compile "com.android.support:recyclerview-v7:${supportLibVersion}"
compile "com.android.support:cardview-v7:${supportLibVersion}"
}

但是有个注意点:

1
compile 'com.android.support:appcompat-v7:${supportLibVersion}'

上面这种写法不对,

1
compile "com.android.support:appcompat-v7:${supportLibVersion}"

这种写法才是正确的。

上面这种方式,如果有新版本,Android Studio还是会提醒你的,所以放心的去用吧!

2018.1.16更新

今天使用 material-dialogs 的时候发现一个bug,就把原工程下载下来编译安装查看,意外发现新的姿势。在工程最外层目录新建文件 dependencies.gradle 里面写:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ext.versions = [
publishVersion : '2.0.3',
publishVersionCode: 33,

minSdk : 15,
compileSdk : 27,
buildTools : '27.0.3',
gradlePlugin : '3.0.1',
kotlin_version : '1.2.0',
realm : '3.1.4',

supportLib : '27.0.2',
mdDialog : '0.9.6.0',
rxJava : '2.1.8',
rxAndroid : '2.0.1',
rxPermission : '0.9.5@aar'
]

然后,如果你在app/build.gradle中引用,首先在app/build.gradle文件里最上面“导包”:

1
apply from: '../dependencies.gradle'

然后就可以通过这样的方式引用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
android {
compileSdkVersion versions.compileSdk
buildToolsVersion versions.buildTools
defaultConfig {
...
minSdkVersion versions.minSdk
targetSdkVersion versions.compileSdk
versionCode versions.publishVersionCode
versionName versions.publishVersion
vectorDrawables.useSupportLibrary = true
}
...
}

dependencies {
implementation 'com.android.support:appcompat-v7:' + versions.supportLib
implementation 'com.android.support:design:' + versions.supportLib
implementation 'com.android.support:recyclerview-v7:' + versions.supportLib
implementation 'com.android.support:cardview-v7:' + versions.supportLib

implementation 'com.afollestad.material-dialogs:core:' + versions.mdDialog
implementation 'com.afollestad.material-dialogs:commons:' + versions.mdDialog

implementation 'io.reactivex.rxjava2:rxjava:' + versions.rxJava
implementation 'io.reactivex.rxjava2:rxandroid:' + versions.rxAndroid
implementation 'com.tbruyelle.rxpermissions2:rxpermissions:' + versions.rxPermission
}

感觉蛮666的,基本不用修改app里和外层的gradle文件,只需修改dependencies.gradle就可以了。如果还不懂,去看人家的项目:material-dialogs

评论留言请点这里