完美解決android 項(xiàng)目jar包沖突的問(wèn)題
大家在做開(kāi)發(fā)中竟然需要用到一些三方庫(kù) 或者 需要集成三方的SDK開(kāi)發(fā)包,尤其是項(xiàng)目特別龐大的時(shí)候,引用的三方的東西特別多,那么肯定會(huì)碰到一些jar包沖突的情況。
常見(jiàn)的情況有以下幾種
1.項(xiàng)目自己引用jar包重復(fù)
2.項(xiàng)目中jar包和三方SDK
3.三方sdk之間都含有相同類(lèi)
4.打包時(shí)候出現(xiàn)編譯錯(cuò)誤,出現(xiàn)沖突
1.項(xiàng)目自己引用jar包重復(fù)
com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice
類(lèi)似這種 v4包重復(fù) ,直接刪掉其中一個(gè)包就可以了。
2.項(xiàng)目中jar包和三方SDK
這其實(shí)有兩種情況
1) 將一些三方的框架源碼引用到項(xiàng)目中了比如 GSON ,Vollery這些,我們將里面的一些文件重寫(xiě)了,引用的是源碼,這個(gè)和我們引用的三方庫(kù)里面的沖突了 。
這種情況,我們可以將三方庫(kù)設(shè)置為私有 provided,如果還是有沖突我們可以將
2) 直接導(dǎo)入的jar包 或者 gradle中配置的依賴(lài) 和項(xiàng)目中原有的一些jar包出現(xiàn)沖突。
3.三方sdk之間都含有相同類(lèi)
比如你集成了友盟的sdk,又集成了支付的sdk,還集成了一些其他的sdk。這些sdk之間會(huì)有一些沖突。
4.打包時(shí)候出現(xiàn)編譯錯(cuò)誤,出現(xiàn)沖突
這種情況是正常手機(jī)調(diào)試運(yùn)行沒(méi)有問(wèn)題,但是一打正式包就報(bào)錯(cuò),沖突。
說(shuō)了這么多,這些碰到這種項(xiàng)目中有沖突,或者有重復(fù)文件的情況我們?nèi)绾谓鉀Q呢?
一般常用的解決辦法
1.雙擊shift 可以調(diào)出搜索 這個(gè)搜索是全局含jar搜索,可以快速定位到你搜索的東西存在哪個(gè)包下。
2.找到后 按上面講的,解決也有幾種情況
1)如果是兩個(gè)相同的jar ,直接刪掉一個(gè)
2)如果不同的jar有相同的引用 用exclude解決,大概意思就是去掉 你不需要的類(lèi)
3)打包出現(xiàn)的錯(cuò)誤沖突等,我們可以找到 ,或者刪除,或者修改,引入的方式可以修改為provided
這種方式只提供編譯支持,但是不會(huì)寫(xiě)入apk。使用provide可以避免支持包版本沖突和重復(fù)打包導(dǎo)致安裝包體積徒增。
以上這篇完美解決android 項(xiàng)目jar包沖突的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 使用Hangfire+.NET 6實(shí)現(xiàn)定時(shí)任務(wù)管理(推薦)2. Xml簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理3. 如何在jsp界面中插入圖片4. jsp實(shí)現(xiàn)登錄驗(yàn)證的過(guò)濾器5. phpstudy apache開(kāi)啟ssi使用詳解6. JSP之表單提交get和post的區(qū)別詳解及實(shí)例7. jsp文件下載功能實(shí)現(xiàn)代碼8. 詳解瀏覽器的緩存機(jī)制9. vue3+ts+elementPLus實(shí)現(xiàn)v-preview指令10. xml中的空格之完全解說(shuō)
