1、新建config.gradle
在自己的项目根目录下一个文件夹下创建一个config.gradle文件名的文件(和settings.gradble同目录),把自己需要用到的库跟版本号写在dependencies 标签括号内
ext {
android = [
compileSdkVersion : 31,
buildToolsVersion : '31.0.0',
applicationId : 'com.jinfeng.gongshigonggao',
minSdkVersion : 24,
targetSdkVersion : 31,
versionCode : 1,
versionName : '1.0',
defaultPublishConfig: 'release',
publishNonDefault : true
]
androidxVersion = [
appcompat : "1.2.0",
recycleviewVersion: "1.0.0",
annotations : "1.1.0"
]
version = [
androidSupportSdkVersion: "29.0.0",
retrofitSdkVersion : "2.9.0",
dagger2SdkVersion : "2.19",
glideSdkVersion : "4.14.2",
fragmentationVersion : "1.0.0",
butterknifeSdkVersion : "10.0.0",
baseRecycleViewVersion : "2.9.34",
rxlifecycleSdkVersion : "1.0",
rxlifecycle2SdkVersion : "2.2.2",
espressoSdkVersion : "3.0.1",
canarySdkVersion : "1.5.4",
arouterSDk : "1.4.1",
arouterCompilerSdk : "1.2.2",
roomVersion : "1.1.1",
okhttp3Version : "4.10.0"
navVersion : "2.1.0"
]
dependencies = [
//support
"design" : "com.android.support:design:${version["androidSupportSdkVersion"]}",
"appcompat" : "androidx.appcompat:appcompat:${androidxVersion["appcompat"]}",
"material" : "com.google.android.material:material:1.3.0",
"constraintlayout" : "androidx.constraintlayout:constraintlayout:2.0.4",
"junit" : "junit:junit:4.12",
"testJunit" : "androidx.test.ext:junit:1.1.2",
"testEspresso" : "androidx.test.espresso:espresso-core:3.3.0",
//network
"retrofit" : "com.squareup.retrofit2:retrofit:${version["retrofitSdkVersion"]}",
"retrofitConverterGson" : "com.squareup.retrofit2:converter-gson:${version["retrofitSdkVersion"]}",
"retrofitAdapterRxjava" : "com.squareup.retrofit2:adapter-rxjava:${version["retrofitSdkVersion"]}",
"retrofitAdapterRxjava2" : "com.squareup.retrofit2:adapter-rxjava2:${version["retrofitSdkVersion"]}",
"okhttp3" : "com.squareup.okhttp3:okhttp:${version["okhttp3Version"]}",
"okhttp3LoggingInterceptor" : "com.squareup.okhttp3:logging-interceptor:${version["okhttp3Version"]}",
"okhttpUrlconnection" : "com.squareup.okhttp:okhttp-urlconnection:2.0.0",
//rx2
"rxjava2" : "io.reactivex.rxjava2:rxjava:2.2.4",
"rxandroid2" : "io.reactivex.rxjava2:rxandroid:2.1.0",
//rx1
"rxjava" : "io.reactivex:rxjava:1.3.0",
"rxandroid" : "io.reactivex:rxandroid:1.2.1",
//Room
"roomRuntime" : "android.arch.persistence.room:runtime:${version["roomVersion"]}",
"roomCompiler" : "android.arch.persistence.room:compiler:${version["roomVersion"]}",
"roomRxjava2" : "android.arch.persistence.room:rxjava2:${version["roomVersion"]}",
//Glide
"glide" : "com.github.bumptech.glide:glide:${version["glideSdkVersion"]}",
"glideCompiler" : "com.github.bumptech.glide:compiler:${version["glideSdkVersion"]}",
"glideAnnotations" : "com.android.support:support-annotations:28.0.0",
//view
"autolayout" : "com.zhy:autolayout:1.4.5",
"butterknife" : "com.jakewharton:butterknife:${version["butterknifeSdkVersion"]}",
"butterknifeCompiler" : "com.jakewharton:butterknife-compiler:${version["butterknifeSdkVersion"]}",
"recyclerview" : "androidx.recyclerview:recyclerview:${androidxVersion["recycleviewVersion"]}",
"qmui" : "com.qmuiteam:qmui:2.0.0-alpha08",
"qmuiteamArch" : "com.qmuiteam:arch:2.0.0-alpha08",
"bottomnavigationviewex" : "com.github.ittianyu:BottomNavigationViewEx:2.0.2",
"banner" : "com.youth.banner:banner:2.0.10",
"magicindicator" : "com.github.hackware1993:MagicIndicator:1.5.0",
"sneaker" : "com.irozon.sneaker:sneaker:2.0.0",
"imagePicker" : "com.cysion:ImagePicker:1.0.7.x",
"ninegridview" : "com.lzy.widget:ninegridview:0.2.0",
"pickView" : "com.contrarywind:Android-PickerView:4.1.8",
"dialogsMaterial" : "com.afollestad.material-dialogs:core:3.1.0",
"dialogsPlus" : "com.orhanobut:dialogplus:1.11@aar",
"flowLayou" : "com.hyman:flowlayout-lib:1.1.2",
"rxlifecycle" : "com.trello:rxlifecycle:${version["rxlifecycleSdkVersion"]}",
"rxlifecycleComponents" : "com.trello:rxlifecycle-components:${version["rxlifecycleSdkVersion"]}",
"rxcache" : "com.github.VictorAlbertos.RxCache:runtime:1.7.0-1.x",
"rxcacheJolyglotGson" : "com.github.VictorAlbertos.Jolyglot:gson:0.0.4",
"rxpermissions" : "com.tbruyelle.rxpermissions:rxpermissions:0.9.4@aar",
"rxpermissions2" : "com.github.tbruyelle:rxpermissions:0.11",
//fragment
"fragmentation" : "me.yokeyword:fragmentationx:${version["fragmentationVersion"]}",
"fragmentationCode" : "me.yokeyword:fragmentationx-core:${version["fragmentationVersion"]}",
"fragmentationSwipeback" : "me.yokeyword:fragmentationx-swipeback:${version["fragmentationVersion"]}",
"rxlifecycle2" : "com.trello.rxlifecycle2:rxlifecycle:${version["rxlifecycle2SdkVersion"]}",
"rxlifecycle2Android" : "com.trello.rxlifecycle2:rxlifecycle-android:${version["rxlifecycle2SdkVersion"]}",
"rxlifecycle2Components" : "com.trello.rxlifecycle2:rxlifecycle-components:${version["rxlifecycle2SdkVersion"]}",
"rxcache2" : "com.github.VictorAlbertos.RxCache:runtime:1.8.3-2.x",
"rxerrorhandler2" : "me.jessyan:rxerrorhandler:2.1.1",
//tools
"dagger2" : "com.google.dagger:dagger:${version["dagger2SdkVersion"]}",
"dagger2Android" : "com.google.dagger:dagger-android:${version["dagger2SdkVersion"]}",
"dagger2AndroidSupport" : "com.google.dagger:dagger-android-support:${version["dagger2SdkVersion"]}",
"dagger2Compiler" : "com.google.dagger:dagger-compiler:${version["dagger2SdkVersion"]}",
"dagger2AndroidProcessor" : "com.google.dagger:dagger-android-processor:${version["dagger2SdkVersion"]}",
"androideventbus" : "org.simple:androideventbus:1.0.5.1",
"liveEventBus" : "io.github.jeremyliao:live-event-bus-x:1.8.0",
"eventbus" : "org.greenrobot:eventbus:3.1.1",
//加载webview
"agentWebCore" : "com.github.Justson.AgentWeb:agentweb-core:v5.0.6-androidx",
"agentWebFilechooser" : "com.github.Justson.AgentWeb:agentweb-filechooser:v5.0.6-androidx",
"agentWebDownloader" :"com.github.Justson:Downloader:v5.0.4-androidx",
//Gson
"gson" : "com.google.code.gson:gson:2.8.5",
//
"multidex" : "com.android.support:multidex:1.0.3",
"annotationJsr250" : "javax.annotation:jsr250-api:1.0",
//PDF
"pdfView" : "com.github.mhiew:android-pdf-viewer:3.2.0-beta.1",
//app升级
"updateApp" : "com.qianwen:update-app:3.5.2",
//悬浮窗
"floatingView" : "com.imuxuan:floatingview:1.6",
"immersionbar" : "com.geyifeng.immersionbar:immersionbar:3.2.2",
"autosize" : "me.jessyan:autosize:1.1.1",
"androidAutoSize" : "com.github.JessYanCoding:AndroidAutoSize:v1.2.1",
//极光推送
"jpush" : "cn.jiguang.sdk:jpush:3.3.4",
"jcore" : "cn.jiguang.sdk:jcore:2.1.2",
"greendao" : "org.greenrobot:greendao:3.2.2",
//环信
"j256" : "com.j256.ormlite:ormlite-android:5.0",
"googleGms" : "com.google.android.gms:play-services-base:11.4.0",
"googleFirebase" : "com.google.firebase:firebase-messaging:11.4.0",
"parse" : "com.parse:parse-android:1.13.1",
"hxSdk" : "com.hyphenate:hyphenate-sdk:3.6.1",
"zbar" : 'cn.bingoogolapple:bga-qrcode-zbar:1.3.6',
"baseRecyclerViewAdapter" : "com.github.CymChad:BaseRecyclerViewAdapterHelper:${version["baseRecycleViewVersion"]}",
"smartrefreshlayout" : "com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-andx-4",
//ARoute
"arouter" : "com.alibaba:arouter-api:${version["arouterSDk"]}",
"arouterCompiler" : "com.alibaba:arouter-compiler:${version["arouterCompilerSdk"]}",
//工具类
"utilcode" : "com.blankj:utilcodex:1.31.1",
//播放视频
"GSYVideoPlayer" : "com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer:v8.3.4-release-jitpack",
//test
"timber" : "com.jakewharton.timber:timber:4.7.1",
"canaryDebug" : "com.squareup.leakcanary:leakcanary-android:${version["canarySdkVersion"]}",
"canaryRelease" : "com.squareup.leakcanary:leakcanary-android-no-op:${version["canarySdkVersion"]}",
"mmkv" : "com.tencent:mmkv:1.2.15",
//navigation Java
"navigationFragment" : "androidx.navigation:navigation-fragment:${version["navVersion"]}",
"navigationUI" : "androidx.navigation:navigation-ui:${version["navVersion"]}",
//navigation Kotlin
"navigationFragmentKt" : "androidx.navigation:navigation-fragment-ktx:${version["navVersion"]}",
"navigationUIKt" : "androidx.navigation:navigation-ui-ktx:${version["navVersion"]}"
]
}
2、在项目的根目录的build.gradle中写入配置信息
apply from: "config.gradle"
3、在项目的build.gradle 中写入配置信息
plugins {
id 'com.android.application'
}
android {
compileSdk rootProject.ext.android.compileSdkVersion
defaultConfig {
applicationId rootProject.ext.android.applicationId
minSdk rootProject.ext.android.minSdkVersion
targetSdk rootProject.ext.android.compileSdkVersion
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
dataBinding {
enabled = true
}
//配置自定义打包名称
applicationVariants.all { variant ->
variant.outputs.all {
def fileName
if (variant.buildType.name.equals('release')) {
fileName = "GongShi_${variant.mergedFlavor.versionName}_${variant.mergedFlavor.versionCode}.apk"
} else if (variant.buildType.name.equals('debug')) {
fileName = "GongShi_${variant.mergedFlavor.versionName}_debug_${variant.mergedFlavor.versionCode}.apk"
}
outputFileName = fileName
}
}
}
dependencies {
implementation rootProject.ext.dependencies.appcompat
implementation rootProject.ext.dependencies.material
implementation rootProject.ext.dependencies.constraintlayout
testImplementation rootProject.ext.dependencies.junit
androidTestImplementation rootProject.ext.dependencies.testJunit
androidTestImplementation rootProject.ext.dependencies.testEspresso
implementation rootProject.ext.dependencies.rxjava2
implementation rootProject.ext.dependencies.rxandroid2
implementation rootProject.ext.dependencies.retrofit
implementation rootProject.ext.dependencies.retrofitConverterGson
implementation rootProject.ext.dependencies.retrofitAdapterRxjava2
implementation rootProject.ext.dependencies.okhttp3
implementation rootProject.ext.dependencies.okhttp3LoggingInterceptor
implementation rootProject.ext.dependencies.pdfView
implementation rootProject.ext.dependencies.rxpermissions2
implementation rootProject.ext.dependencies.roomRuntime
implementation rootProject.ext.dependencies.roomCompiler
implementation rootProject.ext.dependencies.roomRxjava2
implementation rootProject.ext.dependencies.glide
implementation rootProject.ext.dependencies.updateApp
implementation rootProject.ext.dependencies.floatingView
implementation rootProject.ext.dependencies.immersionbar
implementation rootProject.ext.dependencies.androidAutoSize
implementation rootProject.ext.dependencies.baseRecyclerViewAdapter
implementation rootProject.ext.dependencies.GSYVideoPlayer
}
最后重构这个项目即可。
参考于:
https://blog.csdn.net/qq_41326257/article/details/108099424
https://blog.csdn.net/songdongpanCSDN/article/details/79629568