一、Android Support v4、v7、v13 介绍
Google提供了 Android Support Library package
系列的包来保证** 高版本sdk开发的向下兼容性** (即我们用 4.x 开发时,在 1.6 等版本上,可以使用高版本的有些特性,如Fragement,ViewPager等)。简单说明下这几个版本间的区别:
v4 : 这个包是为了 照顾1.6及更高版本而设计的,这个包是使用最广泛的,eclipse新建工程时,都默认带有了。
v7: 这个包是为了考虑照顾 2.1及以上版本而设计的,但不包含更低,故如果不考虑1.6,我们可以采用再加上这个包,另外注意,v7是要依赖v4这个包的,即,两个得同时被包含(默认情况下,依赖 v7 自动导入了 v4)。
v13:这个包的设计是为了android 3.2及更高版本的,一般我们都不常用,平板开发中能用到。(当初是为了开发平板做设计的。Android 3.x 系统都是平板专用系统,但是 3.x 系统失败了。所以使用v13的包没有任何价值。)
注:v7版本适用于任何版本的开发,保证了兼容性,所以在使用的时候一定要采用。
二、v4 包 与 v7 包 冲突问题解决
问题出现:
在使用第三方库的时候,有时第三方库会依赖 v4 包,而我们的项目默认使用 v7 包。如果这时 v4 包的版本与 v7 的版本不一致,就会出现依赖包冲突的问题。
解决方案:
(1)、在项目中重新添加在线的 v4 包:
由于第三方包中的 v4 版本一般比较旧,在 build.gradle 中 重新添加依赖:
// 消除 与 Arouter 中 V4 版本不一致的问题
implementation 'com.android.support:support-v4:27.1.1'
注意, v4 包的版本号要 和v7包的版本要一致,(一般情况下相同版本的依赖包不会冲突),然后重新build工程就好了。
(2)、保留第三方库中的 v4 包,删除项目中的 v4 包:
implementation ('com.android.support:appcompat-v7:27.1.1'){
exclude module: 'support-v4'
}
默认情况下,v7中是包含V4包的,exclude
的意思就是从v7包中去除v4包。这样就可以解决冲突。
补充:
implementation ('com.jakewharton.rxbinding2:rxbinding-design:2.0.0') {
exclude group: 'com.android.support'
}
表示只要包含 com.android.support
的都除去 。
来源:oschina
链接:https://my.oschina.net/u/3739435/blog/1820980