在使用as打包过程中,很可能添加一个三方库,再次构建项目,报版本冲突,我们需要改动gradle文件,将依赖版本统一,这样会避免不少麻烦.
首先,在项目project下创建新文件: dependency.gradle,与setting.gradle是同级的,里面定义的是一些版本信息,如:
dependency.gradle:
ext.versions = [
compileSdkVersion : 25,
minSdkVersion : 16,
targetSdkVersion : 22,
versionCode : 107,
versionName : '1.0.7',
supportLibVersion : "25.0.0"
]
在app的build.gradle文件顶部,引入统一版本依赖:
apply from: '../dependencies.gradle'
apply plugin: 'com.android.application'
android {
signingConfigs {
release {
...
}
debug {
...
}
}
compileSdkVersion versions.compileSdkVersion
defaultConfig {
...
minSdkVersion versions.minSdkVersion
targetSdkVersion versions.targetSdkVersion
versionCode versions.versionCode
versionName versions.versionName
...
}
buildTypes {
debug {
...
}
release {
...
}
}
...
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:' + versions.supportLibVersion
implementation 'org.greenrobot:eventbus:3.0.0'
...
}
ps:我使用的gradle版本4.4,android plugin version为3.1.2, 会自动选取buildToolsVersion,在app的build.gradle文件中,已经不需要添加了.
同样的,在依赖的三方库中的build.gradle文件,使用方法相同,都是先apply from: '../dependencies.gradle'
然后直接使用版本信息,
implementation 'com.android.support:appcompat-v7:' + versions.supportLibVersion
这里需要注意的是,将项目的app和所有依赖的三方库,能统一版本的,全部统一,这样就不会再有构建时依赖版本冲突,
而且便于统一设置管理版本信息.