Android Studio gradle 文件中 ${supp

作者: 爵小友 | 来源:发表于2016-01-25 11:13 被阅读1888次

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

    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想出了这样的一个方法,不用每次修改每个版本,而只需要修改一次就行了,如下

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

    但是有个注意点:

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

    上面这种写法不对

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

    这种写法才是正确的

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

    2018.1.16更新

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

    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文件里最上面“导包”:

    apply from: '../dependencies.gradle'
    

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

    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

    相关文章

      网友评论

        本文标题:Android Studio gradle 文件中 ${supp

        本文链接:https://www.haomeiwen.com/subject/qezrkttx.html