Android Studio中架包打包和依賴沖突解決

一箕母、為什么使用aar打包储藐,而不是jar
隨著Android Studio的使用越來越廣泛俱济,使用aar打包這種方式也越來越可行實際。jar打包只打源代碼钙勃,像資源文件不會打包蛛碌,而aar恰恰是jar打包的補充完善,它會把代碼和資源統(tǒng)統(tǒng)打包進一個文件辖源。

二蔚携、資源命名問題
既然需要打包為sdk提供出來使用,那就要打包得有水準一點克饶。別把常用的第三方的jar集成到aar里面酝蜒,這樣很容易會造成沖突的。

(1)aar中有依賴的架包

①依賴的第三方資源最好是使用jcenter遠程倉庫的依賴彤路,如果遠程倉庫上沒有秕硝;例如下載的類庫,直接使用compile進行依賴洲尊。
compile 'com.dou361.download:jjdxm-download:1.0.1'復制代碼

②自己上傳一個到jcenter遠程倉庫上远豺,學習下打包aar到jcenter也是很有必要的;例如經(jīng)常用到的微信分享登錄的架包libammsdk.jar坞嘀,打包到jcenter上,以后項目中需要用到就添加以下代碼即可:
compile 'com.dou361.winchat:jjdxm-winchat:1.0.0'復制代碼

③當然了丽涩,如果你實在是嫌麻煩那就直接打包到aar上,如果APP中引用別的aar和你的aar有相同的架包那就悲劇了继准,不過還是有解決的辦法,后面會有相關的處理辦法移必。

(2)資源命名
資源命名最好通通加上你的項目名字前綴毡鉴,比如圖片資源、string猪瞬、color、dimens幌甘、layout等等,反正res目錄下所有文件最好都使用統(tǒng)一的加前綴命名饲做,防止跟宿主app下的資源重復遏弱,因為aar引用跟源碼引用起到的效果一樣一樣的,所有很容易出現(xiàn)資源重復引用的問題泪姨,因此加上前綴非常有必要饰抒。可以有效避免架包內部部分內容沖突的尷尬情況袋坑。

三、jar第三方庫重復引用問題
同一個項目下多次引用同一個第三方jar庫會出現(xiàn)重復引用的編譯問題婆誓,所以只要保證引用一次就ok了也颤,但是如果你的庫引用的第三方庫比較多時,就會碰到很尷尬的問題文留。
比如你的aar庫引用了一個第三方庫竭沫,這個庫是本地庫,宿主app中也引用了這個第三方庫蜕提,這時你把你的aar庫所引用的那個第三方庫引用方式設置成provide,provide的意思是不打包進去,這樣沒問題躲查,但是你想過一個問題沒,如果別人使用你的aar姐霍,他不知道你的aar庫需要包含那個第三方庫,如果他在自己的宿主app中沒有引用進來那個庫胯府,好吧恨胚,這會導致運行時崩潰,崩潰的日志提示找不到一些類定義寒波,總不能給別人提供aar庫還要額外提供一堆第三庫升熊,然后告訴他把這些庫添加進主工程里,這種方式可行级野,但是很不友好。

以下是第三方庫重復引用沖突解決方法:
1.本地libs目錄中的jar和遠程倉庫中compile的jar沖突辰企。
解決辦法優(yōu)先刪除libs目錄中的jar保留compile的引用渊抽,也可以刪除compile引用保留本地libs目錄的。

2.本地libs目錄中兩個jar十减,遠程倉庫compile兩個jar或者本地libs目錄和遠程倉庫compile之間的同一jar不同版本沖突愤估。
解決辦法優(yōu)先刪除低版本的保留高版本的,其次是優(yōu)先刪除本地libs的保留compile的由驹。這個要根據(jù)APP的情況而定昔园,保留高版本的jar可能會引起原來其他地方引用低版本方法變遷或者路徑變更出問題,在兩者間擇優(yōu)甥郑,同步升級其他相關jar的版本荤西,或者同步降級其他相關jar的版本伍俘。

3.引用jar和jar勉躺、aar和jar或者aar和aar的沖突。
解決辦法優(yōu)先刪除jar的引用妨退,保留aar的概说,如果兩個都是aar或者兩個都是jar怎么辦?當然也是可以刪除aar或者jar內部中沖突的

(1)aar中沖突的部分是集成到aar中的糖赔,這種情況是比較多,如果是遠程倉庫的需要下載下來逝变,改為本地引用奋构,有人可能不會下載,其實原來你使用遠程倉庫引用同步以后已經(jīng)是下載好在本地的了宴咧,這里舉一個案例:

compile 'com.dou361.update:jjdxm-update:1.0.3' 復制代碼windows系統(tǒng) C:\Users\你的計算機用戶名.gradle\caches\modules-2\files-2.1目錄下找到compile的groupId com.dou361.update文件径缅,完整的目錄:
C:\Users\Admin.gradle\caches\modules-2\files-2.1\com.dou361.update\jjdxm-update\1.0.3\fb8f27de2ce0371476023b1dcf4a6096d19e5810\jjdxm-update-1.0.3.aar復制代碼 復制出來用即可,本地的libs中的aar氧卧,其實就是一個壓縮包氏堤,用解壓工具打開把沖突的部分刪除即可;引用如下:

repositories {
flatDir {
dirs 'libs'
}
}

compile (name:'jjdxm-update',ext:'aar')復制代碼

(2)jar中沖突的部分是jar內部部分內容闪檬,和第(1)的處理方法類似购笆,這里要是沒有說可能會想不到,jar包其實也是一個壓縮包,因此內部的沖突的內容是可以通過解壓工具打開去刪除的。

(3)如果沖突的jar是采用遠程依賴方式引用铭乾,那就可以直接使用代碼去屏蔽沖突的部分

例如:
compile ('com.dou361.update:jjdxm-update:1.0.3'){
exclude group: 'com.dou361.download',module:'jjdxm-download'
}
復制代碼

(4)比較極端的情況娃循,部分類文件目錄名稱重復,但是兩邊的方法功能不一樣笛质,通過解壓工具刪除兩邊重復的內容捞蚂,然后新建一個目錄相同名稱相同的類到自己的主應用程序中,把兩邊的功能都實現(xiàn)在新建的這個類中姓迅。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末丁存,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子扩然,更是在濱河造成了極大的恐慌聋伦,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件索守,死亡現(xiàn)場離奇詭異抑片,居然都是意外死亡,警方通過查閱死者的電腦和手機截汪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門衙解,熙熙樓的掌柜王于貴愁眉苦臉地迎上來焰枢,“玉大人舌剂,你說我怎么就攤上這事暑椰。” “怎么了避消?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵岩喷,是天一觀的道長。 經(jīng)常有香客問我纱意,道長枫虏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任腾它,我火速辦了婚禮瞒滴,結果婚禮上,老公的妹妹穿的比我還像新娘妓忍。我一直安慰自己愧旦,他們只是感情好,可當我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布旁瘫。 她就那樣靜靜地躺著琼蚯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宁仔。 梳的紋絲不亂的頭發(fā)上峦睡,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天权埠,我揣著相機與錄音弊知,去河邊找鬼。 笑死,一個胖子當著我的面吹牛叔扼,可吹牛的內容都是我干的。 我是一名探鬼主播瓜富,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼与柑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了丑念?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤脯倚,失蹤者是張志新(化名)和其女友劉穎推正,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體植榕,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡尊残,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年汞斧,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片竞端。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡事富,死狀恐怖技俐,靈堂內的尸體忽然破棺而出雕擂,到底是詐尸還是另有隱情,我是刑警寧澤井赌,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布仇穗,位于F島的核電站,受9級特大地震影響纹坐,放射性物質發(fā)生泄漏舞丛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一谷誓、第九天 我趴在偏房一處隱蔽的房頂上張望欧聘。 院中可真熱鬧,春花似錦怀骤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至研叫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間渊啰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工绘证, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嚷那。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像腐泻,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子贫悄,可洞房花燭夜當晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內容