您好,登錄后才能下訂單哦!
這篇文章給大家介紹android項目中jar包出現(xiàn)沖突如何解決,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
常見的情況有以下幾種
1.項目自己引用jar包重復(fù)
2.項目中jar包和三方SDK
3.三方sdk之間都含有相同類
4.打包時候出現(xiàn)編譯錯誤,出現(xiàn)沖突
1.項目自己引用jar包重復(fù)
com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice
類似這種 v4包重復(fù) ,直接刪掉其中一個包就可以了。
2.項目中jar包和三方SDK
這其實有兩種情況
1) 將一些三方的框架源碼引用到項目中了比如 GSON ,Vollery這些,我們將里面的一些文件重寫了,引用的是源碼,這個和我們引用的三方庫里面的沖突了 。
這種情況,我們可以將三方庫設(shè)置為私有 provided,如果還是有沖突我們可以將
2) 直接導(dǎo)入的jar包 或者 gradle中配置的依賴 和項目中原有的一些jar包出現(xiàn)沖突。
3.三方sdk之間都含有相同類
比如你集成了友盟的sdk,又集成了支付的sdk,還集成了一些其他的sdk。這些sdk之間會有一些沖突。
4.打包時候出現(xiàn)編譯錯誤,出現(xiàn)沖突
這種情況是正常手機調(diào)試運行沒有問題,但是一打正式包就報錯,沖突。
說了這么多,這些碰到這種項目中有沖突,或者有重復(fù)文件的情況我們?nèi)绾谓鉀Q呢?
一般常用的解決辦法
1.雙擊shift 可以調(diào)出搜索 這個搜索是全局含jar搜索,可以快速定位到你搜索的東西存在哪個包下。
2.找到后 按上面講的,解決也有幾種情況
1)如果是兩個相同的jar ,直接刪掉一個
2)如果不同的jar有相同的引用 用exclude解決,大概意思就是去掉 你不需要的類
3)打包出現(xiàn)的錯誤沖突等,我們可以找到 ,或者刪除,或者修改,引入的方式可以修改為provided
這種方式只提供編譯支持,但是不會寫入apk。使用provide可以避免支持包版本沖突和重復(fù)打包導(dǎo)致安裝包體積徒增。
關(guān)于android項目中jar包出現(xiàn)沖突如何解決就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。