在工程的根目录下新建一个 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文件中引入我们创建的配置文件
在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
}