1. 程式人生 > >AS中v4包衝突解決辦法

AS中v4包衝突解決辦法

v7包包含v4包:maven引入v7包,gradle會自動加入所有v4包的依賴,並且和v7相同的版本。

v4包引入分析

  1. 都是maven的方式引入v4包:不會衝突,gradle會自動選擇較高版本
  2. maven引入,同時本地引入v4包:如果版本相同,不會衝突,否則衝突

結論v4依賴衝突實質:是不同v4版本的衝突,並且是maven和本地引入版本不同才會衝突

解決辦法

    專案通常會使用很多開源庫,統一所有的v4包版本不現實,只能通過exclude方法過濾某些庫的v4包,

保證整個專案只引用一個版本。

  1. 檢視當前各種庫的依賴:
  2. 找到版本衝突的庫,開啟開源庫lib目錄,刪除對應的jar包,改為maven引入方式
  3. 如果app要必須使用本地lib引入v4包,那就排除開源庫的v4包,
  4. compile('com.joanzapata.iconify:android-iconify-ionicons:2.2.2') {
        exclude module: 'support-v4'
    }
        如果是原始碼方式引入開源庫:
    compile((project':thirdpart:RecyclerViewAdapterLibrary')){
        exclude group:'com.android.support'
    }