如題,最近要開發支付功能,自己專案中寫的類與匯入jar包中的類重復了,不僅僅是類名,連包名也重復了。
比如我自己專案里有com.firefliex.utils.FxUtils類,匯入的jar包里也有個com.firefliex.utils.FxUtils類。
網上查了些資料,幾乎全部是解決“匯入的兩個jar包中有類重復”的問題,改變加載順序就行了。但是我這邊的問題就別扭在自己的專案有不少地方用到了我自己寫的FxUtils類,而支付功能的實作要使用jar包里的FxUtils類。如果只加載其中一個,另一個對應功能肯定就找不到對應的方法了。
另外,改變自己專案中FxUtils類雖然可以解決問題,但這個類專案中有太多參考了,不能輕易修改。所以,除了改路徑、類名,還有沒有別的方法。小白一個,之前開發的專案都太簡單了,沒遇到過類似問題,求大神們幫忙啊~
uj5u.com熱心網友回復:
修改自己專案中的類名是最簡單的方式了uj5u.com熱心網友回復:
是這樣,不過這個類有1000+處參考,公司專案不敢亂改
uj5u.com熱心網友回復:
你改類名都是統一改的,一般不會有問題,你可以先備份,然后改完看看有問題沒有uj5u.com熱心網友回復:
全部提交代碼后,直接右鍵Rename,多少都不怕,會全部自動改掉,然后再單獨提交即可。還有為什么你的包名會是com.firefliex.utils?包名不都是"com.你的公司或你自己的名字.xxx"這都能重復?
uj5u.com熱心網友回復:
你現在個jarjar,用這個可以統一修改包名uj5u.com熱心網友回復:
問題已解決。感謝以上各位大佬的回復,回來總結一下:我這里遇到的問題并不是兩個jar包里的類全限定名重復了,而是專案里的一個類和jar包里的一個類重復了,而這兩個類里的方法不重復,兩個類都在不同的地方起著作用,但是類加載機制導致一個類加載了,另一個類就會忽略掉,因此默認方式來講,肯定有一部分方法找不到,一部分功能不能實作。
我的解決方案:把jar包里重復的那個類的所有方法復制粘貼到我自己專案里這個類里,相當于兩個類合并起來,即使jar包里那個類混淆過也沒關系。
為什么會出現這種情況呢?是因為我的部門要用到公司里另一個部門開發的開放平臺的產品,因為是同一個公司,類又是比較基礎的類,所以就造成了全限定名重復這種問題(com.companyname.utils.XXUtil)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/115774.html
標籤:Android
上一篇:XRefreshView與viewpager事件問題
下一篇:智能AI機器人原始碼分享
