Google提供了 Android Support Library package
系列的包來保證** 高版本sdk開發的向下兼容性** (即咱們用 4.x 開發時,在 1.6 等版本上,可使用高版本的有些特性,如Fragement,ViewPager等)。簡單說明下這幾個版本間的區別:android
v4 : 這個包是爲了 照顧1.6及更高版本而設計的,這個包是使用最普遍的,eclipse新建工程時,都默認帶有了。app
v7: 這個包是爲了考慮照顧 2.1及以上版本而設計的,但不包含更低,故若是不考慮1.6,咱們能夠採用再加上這個包,另外注意,v7是要依賴v4這個包的,即,兩個得同時被包含(默認狀況下,依賴 v7 自動導入了 v4)。eclipse
v13:這個包的設計是爲了android 3.2及更高版本的,通常咱們都不經常使用,平板開發中能用到。(當初是爲了開發平板作設計的。Android 3.x 系統都是平板專用系統,可是 3.x 系統失敗了。因此使用v13的包沒有任何價值。)gradle
注:v7版本適用於任何版本的開發,保證了兼容性,因此在使用的時候必定要採用。ui
在使用第三方庫的時候,有時第三方庫會依賴 v4 包,而咱們的項目默認使用 v7 包。若是這時 v4 包的版本與 v7 的版本不一致,就會出現依賴包衝突的問題。設計
因爲第三方包中的 v4 版本通常比較舊,在 build.gradle 中 從新添加依賴:code
// 消除 與 Arouter 中 V4 版本不一致的問題 implementation 'com.android.support:support-v4:27.1.1'
注意, v4 包的版本號要 和v7包的版本要一致,(通常狀況下相同版本的依賴包不會衝突),而後從新build工程就行了。router
implementation ('com.android.support:appcompat-v7:27.1.1'){ exclude module: 'support-v4' }
默認狀況下,v7中是包含V4包的,exclude
的意思就是從v7包中去除v4包。這樣就能夠解決衝突。ip
implementation ('com.jakewharton.rxbinding2:rxbinding-design:2.0.0') { exclude group: 'com.android.support' }
表示只要包含 com.android.support
的都除去 。開發