您现在的位置是:首页 > 文章详情

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

日期:2017-05-10点击:310

前言

在之前的一个项目中,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
原文链接:https://yq.aliyun.com/articles/641061
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章