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
目录
相关文章
|
6月前
|
安全 Cloud Native Go
解决Gradle依赖问题:不安全协议的处理策略Could not resolve all dependencies for configuration ‘:detachedConfiguration9
解决Gradle依赖问题:不安全协议的处理策略Could not resolve all dependencies for configuration ‘:detachedConfiguration9
301 0
|
JavaScript Java Maven
|
Java Android开发
Android如何通过Gradle发布Android依赖库(aar)到 jitpack 公共仓库
Android如何通过Gradle发布Android依赖库(aar)到 jitpack 公共仓库
488 0
|
Java API Android开发
Gradle 依赖关系中 compile和 implementation的区别
将在一个项目中展示implementation,api以及compile之间的差异。 假设我有一个包含三个Gradle模块的项目: • app(Android应用) • my-android-library(Android库) • my-java-library(Java库) app具有my-android-library与依赖。my-android-library具有my-java-library依赖。
514 0
|
Java Spring
一行解决IDEA中gradle下载依赖jar包慢问题(适用于各操作系统)
一行解决IDEA中gradle下载依赖jar包慢问题(适用于各操作系统)
856 0
一行解决IDEA中gradle下载依赖jar包慢问题(适用于各操作系统)
|
4月前
|
Java 关系型数据库 MySQL
Gradle中的依赖Dependencies说明与使用总结
Gradle中的依赖Dependencies说明与使用总结
114 0
|
5月前
|
Java Maven Android开发
android之gradle配置仓库与引入依赖
android之gradle配置仓库与引入依赖
237 0
|
5月前
gradle依赖冲突的解决方式
gradle依赖冲突的解决方式
|
6月前
|
Java 数据库连接 API
Gradle依赖管理:编译时和运行时依赖的区别
Gradle依赖管理:编译时和运行时依赖的区别
47 0
|
9月前
|
缓存 数据可视化 Java
Gradle 构建工具 #5 又冲突了!如何理解依赖冲突与版本决议?
Gradle 作为官方主推的构建系统,目前已经深度应用于 Android 的多个技术体系中,例如组件化开发、产物构建、单元测试等。可见,要成为 Android 高级工程师 Gradle 是必须掌握的知识点。
130 0
Gradle 构建工具 #5 又冲突了!如何理解依赖冲突与版本决议?