Android Studio gradle 文件中 ${supportLibVersion} 用法

一般我們?cè)陧?xiàng)目中的gradle會(huì)添加如下庫(kù)文件

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'  
}  

所以每次升級(jí)的時(shí)候都要修改后面的23.1.0版本號(hào),Android開(kāi)發(fā)小組的Chris Banes想出了這樣的一個(gè)方法,不用每次修改每個(gè)版本,而只需要修改一次就行了,如下

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}"  
}  

但是有個(gè)注意點(diǎn):

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

上面這種寫(xiě)法不對(duì)

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

這種寫(xiě)法才是正確的

上面這種方式,如果有新版本,Android Studio還是會(huì)提醒你的,所以放心的去用吧!

2018.1.16更新

今天使用 material-dialogs 的時(shí)候發(fā)現(xiàn)一個(gè)bug,就把原工程下載下來(lái)編譯安裝查看,意外發(fā)現(xiàn)新的姿勢(shì)。在工程最外層目錄新建文件 dependencies.gradle 里面寫(xiě):

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文件里最上面“導(dǎo)包”:

apply from: '../dependencies.gradle'

然后就可以通過(guò)這樣的方式引用:

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
}

感覺(jué)蠻666的,基本不用修改app里和外層的gradle文件,只需修改dependencies.gradle就可以了。如果還不懂,去看人家的項(xiàng)目:material-dialogs

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,466評(píng)論 25 708
  • 這一章主要針對(duì)項(xiàng)目中可以用到的一些實(shí)用功能來(lái)介紹Android Gradle,比如如何隱藏我們的證書(shū)文件,降低風(fēng)險(xiǎn)...
    acc8226閱讀 7,694評(píng)論 3 25
  • 參考 中文官網(wǎng)構(gòu)建指南:https://developer.android.google.cn/studio/bu...
    FinalSky閱讀 5,445評(píng)論 0 16
  • 圖片發(fā)自簡(jiǎn)書(shū)App五絕|紅梅仙 小雪林孤鹿,羌笛遠(yuǎn)古悠。仙梅紅點(diǎn)點(diǎn),掃雪煎茶休。圖片發(fā)自簡(jiǎn)書(shū)App五絕|白梅仙 凈...
    三荷聽(tīng)雨聲閱讀 291評(píng)論 0 3
  • 為什么還要哭!!!我真的好想你啊 還要怎樣呢?贖罪。
    表情商店閱讀 152評(píng)論 0 1