Android Studio配置config.gradle统一管理项目版本号和引用等配置

在工程的根目录下新建一个 config.gradle文件

在工程的根目录下新建一个 config.gradle文件
1、接下来我们把编译工具的版本,SDK的版本和项目所需要的依赖写在这个创建的文件中;
2、隐私信息都用xxx替换了

/**
 * 统一处理依赖问题
 */
ext {
    android = [
            compileSdkVersion: 28,
            minSdkVersion    : 17,
            targetSdkVersion : 28,
            versionCode      : 146,
            versionName      : "2.6.3"
    ]
 
    url = [
            uatUrl  : '"http://xxxxxxxxxxxxxx.com:8080/"',
            prodUrl : '"http://xxxxxxxxxxxxxx.com:8080/"',
            localUrl: '"http://199.10.223.68:0809/"'
    ]
 
    versions = [
            androidSupportSdkVersion     : "28.0.0",
 
            okhttp                       : "3.4.1",
            retrofit                     : "2.1.0",
            rxjava                       : "1.0.14",
            rxandroid                    : "1.2.1",
            glide                        : "3.7.0",
            okhttp3Integration           : "1.4.0@aar",
            glideTransformations         : "2.0.1",
 
            butterknife                  : "8.2.0",
 
            constraintLayout             : "1.0.2",
            commons                      : "0.9.0.1",
            materialloadingprogressbar   : "0.5.8-RELEASE",
            flexbox                      : "0.1.2",
            library                      : "1.4.0",
            shortcutBadger               : "1.1.4",
 
            crashwoodpecker              : "1.2",
 
            multiImageSelector           : "1.2",
            ahbottomnavigation           : "1.3.3",
            multidex                     : "1.0.1",
            eventbus                     : "3.1.1",
            flycoLabelView_Lib           : "1.0.2@aar",
            baseRecyclerViewAdapterHelper: "2.9.50",
 
            smartrefresh                 : "1.1.0-alpha-28",
 
            circleimageview              : "3.0.0",
            simpleratingbar              : "0.1.2",
            appindexing                  : "8.4.0",
 
            tinker                       : "1.9.6",
            tinkerSDk                    : "1.2.6",
            bugly                        : "2.8.6",
            jpush                        : "3.3.6",
            jcore                        : "2.1.4"
    ]
 
    dependencies = [
            design                       : "com.android.support:design:${versions.androidSupportSdkVersion}",
            appcompat                    : "com.android.support:appcompat-v7:${versions.androidSupportSdkVersion}",
            cardview                     : "com.android.support:cardview-v7:${versions.androidSupportSdkVersion}",
 
            okhttp                       : "com.squareup.okhttp3:okhttp:3.4.1",
            retrofit                     : "com.squareup.retrofit2:retrofit:${versions.retrofit}",
            converterGson                : "com.squareup.retrofit2:converter-gson:${versions.retrofit}",
            adapterRxjava                : "com.squareup.retrofit2:adapter-rxjava:${versions.retrofit}",
 
            rxjava                       : "io.reactivex:rxjava:${versions.rxjava}",
            rxandroid                    : "io.reactivex:rxandroid:${versions.rxandroid}",
            glide                        : "com.github.bumptech.glide:glide:${versions.glide}",
            okhttp3Integration           : "com.github.bumptech.glide:okhttp3-integration:${versions.okhttp3Integration}",
            glideTransformations         : "jp.wasabeef:glide-transformations:${versions.glideTransformations}",
 
            butterknife                  : "com.jakewharton:butterknife:${versions.butterknife}",
            butterknifeCompiler          : "com.jakewharton:butterknife-compiler:${versions.butterknife}",
 
            constraintLayout             : "com.android.support.constraint:constraint-layout:${versions.constraintLayout}",
            commons                      : "com.afollestad.material-dialogs:commons:${versions.commons}",
            materialloadingprogressbar   : "com.lsjwzh:materialloadingprogressbar:${versions.materialloadingprogressbar}",
            flexbox                      : "com.google.android:flexbox:${versions.flexbox}",
            library                      : "com.romainpiel.shimmer:library:${versions.library}",
            shortcutBadger               : "me.leolin:ShortcutBadger:${versions.shortcutBadger}",
 
            crashwoodpecker              : "me.drakeet.library:crashwoodpecker:${versions.crashwoodpecker}",
            crashwoodpeckerDoNothing     : "me.drakeet.library:crashwoodpecker-do-nothing:${versions.crashwoodpecker}",
 
            multiImageSelector           : "com.github.lovetuzitong:MultiImageSelector:${versions.multiImageSelector}",
            ahbottomnavigation           : "com.aurelhubert:ahbottomnavigation:${versions.ahbottomnavigation}",
            multidex                     : "com.android.support:multidex:${versions.multidex}",
            eventbus                     : "org.greenrobot:eventbus:${versions.eventbus}",
            flycoLabelView_Lib           : "com.flyco.labelview:FlycoLabelView_Lib:${versions.flycoLabelView_Lib}",
            baseRecyclerViewAdapterHelper: "com.github.CymChad:BaseRecyclerViewAdapterHelper:${versions.baseRecyclerViewAdapterHelper}",
 
            smartRefreshLayout           : "com.scwang.smartrefresh:SmartRefreshLayout:${versions.smartrefresh}",
            smartRefreshHeader           : "com.scwang.smartrefresh:SmartRefreshHeader:${versions.smartrefresh}",
 
            circleimageview              : "de.hdodenhof:circleimageview:${versions.circleimageview}",
            simpleratingbar              : "com.iarcuschin:simpleratingbar:${versions.simpleratingbar}",
 
            //tinker
            tinker                       : "com.tinkerpatch.tinker:tinker-android-anno:${versions.tinker}",
            tinkerSDk                    : "com.tinkerpatch.sdk:tinkerpatch-android-sdk:${versions.tinkerSDk}",
            //bugly
            bugly                        : "com.tencent.bugly:crashreport:${versions.bugly}",
            //极光推送
            jpush                        : "cn.jiguang.sdk:jpush:${versions.jpush}",
            jcore                        : "cn.jiguang.sdk:jcore:${versions.jcore}"
    ]
}

在根目录下的build.gradle文件中引入我们创建的配置文件

image.png

在app的build.gradle中进行如下配置进行使用

apply plugin: 'com.android.application'
apply from: 'tinkerpatch.gradle'
 
android {
 
    signingConfigs {
        release {
            keyAlias 'android'
            keyPassword '123456'
            storeFile file('../icewater.jks')
            storePassword '123456'
        }
    }
    compileSdkVersion rootProject.ext.android.compileSdkVersion
    defaultConfig {
        applicationId 'com.icewater.top'
        minSdkVersion rootProject.ext.android.minSdkVersion
        targetSdkVersion rootProject.ext.android.targetSdkVersion
        versionCode rootProject.ext.android.versionCode
        versionName rootProject.ext.android.versionName
        signingConfig signingConfigs.release
        multiDexEnabled true
        flavorDimensions rootProject.ext.android.versionName
 
        ndk {
            abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64', 'mips', 'mips64'
        }
    }
 
    buildTypes {
        release {
            minifyEnabled false
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            minifyEnabled false
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        android.applicationVariants.all { variant ->
            variant.outputs.all {
                outputFileName = "Icewater的应用_${defaultConfig.versionName}_${productFlavors[0].name}.apk"
            }
        }
    }
 
    /**
     * aar文件的编译
     */
    repositories {
        flatDir {
            dirs 'libs'
        }
        maven {
            url "https://jitpack.io"
        }
    }
 
    productFlavors {
        //测试环境
        uat {
            buildConfigField "String", "BASE_URL", rootProject.ext.url.uatUrl
            buildConfigField "boolean", "isProdDebug", "false"
            applicationId "com.icewater.top.uat"
            manifestPlaceholders = [APP_NAME     : "Icewater的应用UAT",
                                    JPUSH_PKGNAME: applicationId,
                                    JPUSH_APPKEY : "sdghjgjdienrofn358snldfn",
                                    JPUSH_CHANNEL: "developer-default"]
        }
 
        //正式环境
        prod {
            buildConfigField "String", "BASE_URL", rootProject.ext.url.prodUrl
            buildConfigField "boolean", "isProdDebug", "false"
            applicationId "com.icewater.top"
            manifestPlaceholders = [APP_NAME     : "Icewater的应用",
                                    JPUSH_PKGNAME: applicationId,
                                    JPUSH_APPKEY : "sdghjgjdienrofn358snldfn",
                                    JPUSH_CHANNEL: "developer-default"]
        }
 
        //本地环境
        local {
            manifestPlaceholders = [APP_NAME: "Icewater的应用local"]
            buildConfigField "String", "BASE_URL", rootProject.ext.url.localUrl
            buildConfigField "boolean", "isProdDebug", "false"
            applicationId "com.icewater.top.local"
        }
    }
 
    /**
     * 本地so的使用
     */
    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
}
 
 
dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    //noinspection GradleCompatible
    implementation rootProject.ext.dependencies.design
    implementation rootProject.ext.dependencies.appcompat
    implementation rootProject.ext.dependencies.cardview
    implementation(name: 'switch-button', ext: "aar")
    implementation files('libs/alipaySdk-20180601.jar')
    implementation rootProject.ext.dependencies.okhttp
    implementation rootProject.ext.dependencies.retrofit
    implementation rootProject.ext.dependencies.converterGson
    implementation rootProject.ext.dependencies.adapterRxjava
    implementation rootProject.ext.dependencies.rxjava
    implementation rootProject.ext.dependencies.rxandroid
    implementation rootProject.ext.dependencies.glide
    implementation rootProject.ext.dependencies.okhttp3Integration
    implementation rootProject.ext.dependencies.glideTransformations
    implementation rootProject.ext.dependencies.butterknife
    annotationProcessor rootProject.ext.dependencies.butterknifeCompiler
    implementation rootProject.ext.dependencies.constraintLayout
    implementation rootProject.ext.dependencies.commons
    implementation rootProject.ext.dependencies.materialloadingprogressbar
    implementation rootProject.ext.dependencies.flexbox
    implementation rootProject.ext.dependencies.library
    implementation rootProject.ext.dependencies.shortcutBadger
    debugImplementation rootProject.ext.dependencies.crashwoodpecker
    releaseImplementation rootProject.ext.dependencies.crashwoodpeckerDoNothing
    implementation rootProject.ext.dependencies.multiImageSelector
    implementation rootProject.ext.dependencies.ahbottomnavigation
    implementation rootProject.ext.dependencies.multidex
    implementation rootProject.ext.dependencies.eventbus
    implementation rootProject.ext.dependencies.flycoLabelView_Lib
    implementation rootProject.ext.dependencies.baseRecyclerViewAdapterHelper
    implementation rootProject.ext.dependencies.smartRefreshLayout
    implementation rootProject.ext.dependencies.smartRefreshHeader
    implementation rootProject.ext.dependencies.circleimageview
    //等级星星选择
    implementation rootProject.ext.dependencies.simpleratingbar
    //视频
    implementation(name: 'videoplay', ext: "aar")
    //音频
    implementation(name: 'audiorecorder', ext: "aar")
    //tinker接入
    annotationProcessor rootProject.ext.dependencies.tinker
    implementation rootProject.ext.dependencies.tinkerSDk
    //bugly接入
    implementation rootProject.ext.dependencies.bugly
    //极光推送
    implementation rootProject.ext.dependencies.jpush
    implementation rootProject.ext.dependencies.jcore
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容