开发者社区> 禁言> 正文

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

简介: 前言 在之前的一个项目中,compileSdkVersion和targetSdkVersion都是使用的24,都是使用最新的,紧跟潮流嘛,一直是相安无事。
+关注继续查看

前言

在之前的一个项目中,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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Gradle 自定义插件
Gradle 自定义插件 官方原文 gradle学习官方翻译网站 1.新建项目 配置build.gradle //使用官方的 `groovy` 插件 apply plugin: 'groovy' //添加api依赖 dependencies {dependencyHandler -> dependencyHandler .
1084 0
Gradle自定义插件
Gradle自定义插件 在Gradle中创建自定义插件,Gradle提供了三种方式: 在build.gradle脚本中直接使用 在buildSrc中使用 在独立Module中使用 开发Gradle插件可以在IDEA中进行开发,也可以在Android Studio中进行开发,它们唯一的不同,就是IDEA提供了Gradle开发的插件,比较方便创建文件和目录,而Android Studio中,开发者需要手动创建(但实际上,这些目录并不多,也不复杂,完全可以手动创建)。
1171 0
buildship,eclipseIDE的gradle插件
buildship是一款eclipseIDE的gradle插件。 1.安装 打开Eclipse Marketplace,搜索buildship。按照提示安装完成并重启eclipse。 提示:若遇到打不开Eclipse Marketplace的情况,尝试检查网络代理。 2.新建、导入项目 新建 或 导入已有gradle项目File|new|other,选择gradle projec
1913 0
gradle_学习_02_gradle多模块构建实例
一、前言     二、多模块构建 1.工程结构    父工程:weixin-service 子模块:weixin-gz                weixin-qy   2.
1082 0
【Groovy】构建工具 ( 构建工具引入 | Gradle 构建工具作用 | 传统的依赖管理 )
【Groovy】构建工具 ( 构建工具引入 | Gradle 构建工具作用 | 传统的依赖管理 )
63 0
Gradle添加依赖及使用注解(添加插件)
一、基于Gradle可以构建很多项目,下面以Kotlin项目为例 package com.reflections import sun.
2368 0
+关注
禁言
如何成为一名全屏攻城狮? 啊哈,口误,应该是如何成为一名全栈攻城狮.
文章
问答
文章排行榜
最热
最新
相关电子书
更多
使用Spring.Initializr定制工程脚手架
立即下载
陈曦:使用Spring.Initializr定制工程脚手架
立即下载
低代码开发师(初级)实战教程
立即下载