版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangxumh520/article/details/89915668
一、v7包含多个依赖包,但是和v4不同的是,v7下的多个子包是以独立库的形式发布的,有着特定的功能,每一个都可以单独的被引用。它们分别是v7-appcompat、v7-cardview、v7-gridlayout、v7-mediarouter、v7-palette、v7-recyclerview、v7-Preference-Support。
二、项目中直接引入v7-appcompat(默认引入), gradle会自动加入所有v4包的依赖,并且是和v7相同的版本,因此不用再引入v4。
三、v7版本可以和compileVersion不一致,只是官方建议保持一致。
四、项目中同时存在不同版本的v7包,如果是以maven的方式引入,gradle会自动选择版本较高的。但是如果有本地lib引入的话,运行时还是会报dex文件冲突。
五、异常冲突解决
1. 首先查看当前项目各种库的依赖情况。
2. 找到里面版本冲突的依赖库,然后查找app项目,开源库的lib目录,删除对应的jar包改用maven形式引入。
3. 如果你的app必须要使用本地lib引入v4库,那么就排除开源库的v4包
compile('com.facebook.fresco:fresco:0.10.0') {
exclude module: 'support-v4'
}
如果是源码形式引入的开源库
compile (project(':thirdpart:RecyclerViewAdapterLibrary')){
exclude group: 'com.android.support'
}
六、v13包是开发平板用的