一、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包是開發平板用的