Android依赖库版本不一致的解决办法
2019-01-19 本文已影响15人
CarlosLynn
依赖库版本不一致问题
如下图所示,当我添加依赖
implementation'com.yanyusong.y_divideritemdecoration:y_divideritemdecoration:2.0'
并同步后出现报错:
我们悬浮鼠标观察报错提示:
image.png
经过一阵翻译和推测,我们判定是添加多个依赖,导致某些库的版本不一致引发报错.
解决办法
我们在当前的文件中做如下配置
configurations.all {
//循环一个个的依赖库
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
//获取当前循环到的依赖库
def requested = details.requested
//如果这个依赖库群组的名字是com.android.support
if (requested.group == 'com.android.support') {
//且其名字不是以multidex开头的
if (!requested.name.startsWith("multidex")) {
//这里指定需要统一的依赖版本
details.useVersion '28.0.0'
}
}
}
}
再次同步过程后我们发现报错提示消失 了
image.png
ok问题完美解决,强迫症的同学是不是舒服了很多
完整文件配置
apply plugin: 'com.android.library'
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.yanyusong.y_divideritemdecoration:y_divideritemdecoration:2.0'
}
configurations.all { //循环一个个的依赖库
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested //获取当前循环到的依赖库
if (requested.group == 'com.android.support') {//如果这个依赖库群组的名字是com.android.support
if (!requested.name.startsWith("multidex")) { //且其名字不是以multidex开头的
details.useVersion '28.0.0'//这里指定需要统一的依赖版本
}
}
}
}