组件化

Android依赖库版本不一致的解决办法

2019-01-19  本文已影响15人  CarlosLynn

依赖库版本不一致问题

如下图所示,当我添加依赖
implementation'com.yanyusong.y_divideritemdecoration:y_divideritemdecoration:2.0'
并同步后出现报错:

image.png
我们悬浮鼠标观察报错提示:
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'//这里指定需要统一的依赖版本
            }
        }
    }
}

参看文献

https://blog.csdn.net/submit66/article/details/79600558

上一篇下一篇

猜你喜欢

热点阅读