Gradle之强制依赖某个第三方库

前言

在之前的一个项目中,compileSdkVersion和targetSdkVersion都是使用的24,都是使用最新的,紧跟潮流嘛,一直是相安无事。直到有一天接入一个第三方的SDK的时候,问题暴露了:第三方SDK仅仅只支持最大22的编译,23及以上他本身的SDK就会直接崩溃。没办法,只能降级项目中的编译版本来兼容他了。这一降,才知道不是那么好办的。

1.创建项目

img_fb9c4a3ebc70635555e87cddbc569889.png

如上图所示,创建了一个项目,compileSdkVersion、targetSdkVersion都是22,并且引用了一个appcompat-v7:22.2.1包。

2.提升引用appcompat-v7版本

看下图,将v7包提升到了23.2.1,就直接爆出了一个错误。

img_4306cf41334d22048b5d04c011711303.png

这个错误,如果单单只是在我们自己的项目中出现,还是很好解决的,要么降低v7的版本和sdk一致,要么就提升sdk版本和v7保持一致。但是,有得时候所引用的v7是在我们引用的开源库中引用的,我们自己的sdk不能提升,也不能修改开源库中的引用版本。

3.其他开源库appcompat-v7高版本

为了方便,我就自己创建了一个library并引用了,并且在library中引用了appcompat-v7:22.2.1,并且sdk都提升到了24.如下图:

img_6d4c29fbb5a3a5191f3daa00c184091f.png

编译一下app,爆出了和前面一样的错误。直接引用了最高版本的v7:24.1.0

img_2aa0ddda0fa720e1cf7d99fb2d0add5e.png

是不是很绝望?自己的的SDK又不能提升,别人的引用又不能修改。Gradle提供了一个强制依赖的方法:

resolutionStrategy.force

4.resolutionStrategy.force

使用方法简单,只需要将以下脚本放在Android节点下即可

configurations.all {
    resolutionStrategy.force "com.android.support:appcompat-v7:22.2.1"
}

如图所示

img_44d198ca253441cb0743a3c18b41428f.png

总结

半年了,终于又开始写博客了。现在Android行情已经不是那么好了。

来来扫下码,关注一下吧,或者微信搜索AndroidRookie

img_b246dc41a34e6fdd3598d113e0f65194.jpe
AndroidRookie
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值