依赖库冲突解决方案

1.当依赖库被多个三方引用造成冲突时

configurations {

     //去掉所有的utdid重复

      all*.exclude group:'com.alipay.android.phone.thirdparty', module: 'utdid-build' 

      //去掉所有的 com.android.support:support-annotations 依赖

       all*.exclude group: 'com.android.support', module: 'support-annotations';

}

2.如果已知冲突的三方

比如直播sdk冲突

implementation ('com.bokecc:vod:3.7.1'){

    exclude  group:'com.bokecc',  module:'hdplayer'  //去掉冲突的库

}

比如直播support库冲突

implementation('com.airbnb.android:lottie:2.6.0'){

    exclude group:'com.android.support'

}

3.如果是so包冲突,必须在主项目中使用

packagingOptions {

     pickFirst 'lib/armeabi-v7a/libstlport_shared.so'  //引号后面 去掉重复的.so 包

}

4.如果不想让三方使用的依赖库编译 则使用 transitive 字段

compile('com.aliyun.ams:alicloud-android-beacon:1.0.1'){

    transitive   true

}

你可能感兴趣的:(依赖库冲突解决方案)