【Gradle】解決友盟分享SDK和其餘分享SDK衝突的問題

死因

發生衝突的兩個包分別是android

implementation 'com.umeng.umsdk:share-qq:6.9.4'
implementation('com.xyzlf.share:sharesdk:0.0.11') {
    exclude group: 'com.android.support', module: 'appcompat-v7'
}
複製代碼

第一個是友盟的分享SDK,第二個是xyzlfShareSDK 這兩個包引用的QQ的opensdk不只版本不一樣連特麼包名都不同(╯‵□′)╯︵┻━┻ 死法如圖: git

Gradle依賴衝突報錯
能夠看到是com.tencent.connect這個包下的類重複了,這種小問題,摳掉就完了~( ̄▽ ̄~)~
嘗試剔除
納尼?沒效果!∑(っ °Д °;)っ這尼瑪不科學啊,仔細看看報錯,發現了一點端倪。
報錯的module
實際jar包名稱
報錯的module名稱竟然和引入的jar包名稱不同?下面shareSDK也是同樣,並非引入的jar包的名稱。
哦~混淆改變了module名稱因此摳不掉?(←我猜的)
仍是說由於兩個open_sdk的版本不同?
因而我去嘗試了clone一下ShareSDK而後用友盟的這個opensdk替換掉裏面的opensdk發現問題依舊。

解決方案

友盟的官網從新下載SDK,不能用Gradle導入倉庫裏的SDK。 github

友盟官網SDK下載界面
在這裏↓點設置,只勾QQ,而後打開zip包把lib和drawable裏的東東丟到咱的項目裏面
SDK下載設置
嗯?這是個啥玩意?裏面居然沒有open_sdk?難道在jar包裏?
友盟QQ精簡包
還真特麼沒有?∑(っ °Д °;)っ
jar包內容
等會∑(っ °Д °;)っ我再回去看看剛纔這個下載界面
精簡版SDK的描述
完整版SDK的描述
懂了!原來是友盟這廝魔改了SDK致使的!只勾完整版SDK,再次下載
完整版SDK
這下對了嘛,opensdk不要,把這個umeng-share-QQ-full拖進項目
放進libs
搞定,友盟QQ登陸和ShareSDK分享共存啦~( ̄▽ ̄~)~

總結

從新下載友盟的SDK,選擇完整版,而後不導入opensdk就好了,記得導drawable
PS.期間一度懷疑是我Gradle沒寫對,反覆修改Gradle都搞不定,差點懷疑人生。SDK衝突的時候仍是應該從源頭上找緣由,SDK不靠譜簡直出大問題,我的並不喜歡友盟這個平臺,它致使的問題多花的時間比它的集成剩下的時間多多了。 不過。。。它是怎麼搞定這麼多平臺的集成的∑(っ °Д °;)っ連臉書推特和剛涼涼的G+都有 bash

友盟支持的平臺
相關文章
相關標籤/搜索