Android中 aar 文件的日常使用

在開(kāi)發(fā)中遇到好用的開(kāi)源庫(kù)內(nèi)心總是激動(dòng)的,但是如果因?yàn)椤熬W(wǎng)絡(luò)問(wèn)題”無(wú)法通過(guò)compile命令引用內(nèi)心又是崩潰的,這個(gè)時(shí)候aar文件對(duì)于我們來(lái)說(shuō)就是非常好的選擇。

什么是aar

在Java開(kāi)發(fā)中庫(kù)的形式一般會(huì)以jar包的形式提供威恼,但是jar包只能包含代碼文件。在Android開(kāi)發(fā)中經(jīng)常會(huì)涉及到圖片寝并、布局等資源沃测,這個(gè)時(shí)候aar文件可以把這些資源統(tǒng)一打包進(jìn)來(lái)。

如何打包aar

新建Library

默認(rèn)你已經(jīng)建好了一個(gè)model食茎,并且是Library形式的存在蒂破。

選中Gradle視圖窗口

點(diǎn)擊Android Studio右側(cè)Gradle,顯示中選中你的庫(kù)别渔,然后依次選中Tasks-->build-->assembleRelease,然后雙擊運(yùn)行即可附迷。


選擇視圖窗口
選擇視圖窗口

等待運(yùn)行顯示如下表示成功:

運(yùn)行成功界面
運(yùn)行成功界面

然后可以到 你的項(xiàng)目地址\build\outputs\aar 目錄下找到生成的aar文件,選擇release版本哎媚。

使用 gradlew assembleRelease 命令

在Android studio的Terminal命令行中輸入gradlew assembleRelease 回車即可
注:命令方式有可能會(huì)失敗喇伯,具體需要分析報(bào)錯(cuò)信息。如果命令方式失敗可以使用上面的方法

如何使用aar

首先在project視圖下拨与,將aar文件添加到libs文件夾里

然后需要在使用的模塊的build.gradle文件中添加如下配置:

repositories {
    flatDir {
        dirs 'libs'
    }
}

最后在dependencies中添加配置:

compile(name: 'lfilepickerlibrary-release', ext: 'aar')

name 為需要引用的aar文件的文件名

填坑之旅

ClassNotFoundException

運(yùn)行后報(bào)找不到aar文件中的一個(gè)類稻据,打開(kāi)aar文件查看這個(gè)類明明存在。

...掙扎中...

經(jīng)過(guò)分析(查找資料)發(fā)現(xiàn)原庫(kù)中引用了第三方庫(kù)(其實(shí)就是recyclerview),但是打包成aar的時(shí)候好像并沒(méi)有打入進(jìn)來(lái)买喧,解決方式:在新的工程中引入recyclerview捻悯,重新Rebulid后成功運(yùn)行。

P.S.:兩者之間的版本號(hào)是否必須一致尚未測(cè)試

資源命名問(wèn)題

res下的資源名稱很有可能會(huì)和依賴的aar庫(kù)中的資源名稱相同淤毛,引發(fā)資源重復(fù)引用今缚。
處理方式為在打包aar庫(kù)文件時(shí),將資源名稱以自己獨(dú)有的格式命名低淡,避免常規(guī)命名沖突姓言。

最后說(shuō)兩句

目前碰到的上面兩個(gè)問(wèn)題,可能會(huì)有以下其他的坑留作以后補(bǔ)充蔗蹋。
其實(shí)compile命令添加引用的方式是最方便的何荚,但是對(duì)于“網(wǎng)絡(luò)問(wèn)題”無(wú)法正常使用的人來(lái)說(shuō)aar文件就是救命稻草了,所以還是希望大牛們?cè)陂_(kāi)源的時(shí)候如果方便盡可能的提供一下這種方式猪杭。有問(wèn)題歡迎留言~

歡迎訪問(wèn)博客: https://leonhua.github.io/ 餐塘,查看更多文章。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末胁孙,一起剝皮案震驚了整個(gè)濱河市唠倦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌涮较,老刑警劉巖稠鼻,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異狂票,居然都是意外死亡候齿,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門闺属,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)慌盯,“玉大人,你說(shuō)我怎么就攤上這事掂器⊙窃恚” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵国瓮,是天一觀的道長(zhǎng)灭必。 經(jīng)常有香客問(wèn)我,道長(zhǎng)乃摹,這世上最難降的妖魔是什么禁漓? 我笑而不...
    開(kāi)封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮孵睬,結(jié)果婚禮上播歼,老公的妹妹穿的比我還像新娘。我一直安慰自己掰读,他們只是感情好秘狞,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著蹈集,像睡著了一般谒撼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上雾狈,一...
    開(kāi)封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天廓潜,我揣著相機(jī)與錄音,去河邊找鬼善榛。 笑死辩蛋,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的移盆。 我是一名探鬼主播悼院,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼咒循!你這毒婦竟也來(lái)了据途?” 一聲冷哼從身側(cè)響起绞愚,我...
    開(kāi)封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎颖医,沒(méi)想到半個(gè)月后位衩,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡熔萧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年叔收,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了荷科。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酷师。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡凭需,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出俺榆,到底是詐尸還是另有隱情感昼,我是刑警寧澤,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布罐脊,位于F島的核電站抑诸,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏爹殊。R本人自食惡果不足惜蜕乡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望梗夸。 院中可真熱鬧层玲,春花似錦、人聲如沸反症。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)铅碍。三九已至润绵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間胞谈,已是汗流浹背尘盼。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留烦绳,地道東北人卿捎。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像径密,于是被迫代替她去往敵國(guó)和親午阵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 1.介紹 如果你正在查閱build.gradle文件的所有可選項(xiàng)享扔,請(qǐng)點(diǎn)擊這里進(jìn)行查閱:DSL參考 1.1新構(gòu)建系統(tǒng)...
    Chuckiefan閱讀 12,146評(píng)論 8 72
  • Gradle是什么底桂? Gradle 是以Groovy為基礎(chǔ)植袍,面向java應(yīng)用,基于DSL語(yǔ)法的自動(dòng)化構(gòu)建工具籽懦。是g...
    Jinwong閱讀 8,156評(píng)論 1 65
  • 前言 為什么需要學(xué)Gradle? Gradle 是 Android 現(xiàn)在主流的編譯工具于个,雖然在Gradle 出現(xiàn)之...
    真笨笨魚閱讀 1,496評(píng)論 0 0
  • 這一章主要針對(duì)項(xiàng)目中可以用到的一些實(shí)用功能來(lái)介紹Android Gradle,比如如何隱藏我們的證書文件猫十,降低風(fēng)險(xiǎn)...
    acc8226閱讀 7,644評(píng)論 3 25
  • 我曾經(jīng)無(wú)數(shù)次思考過(guò)關(guān)于人際關(guān)系的問(wèn)題,因此每每會(huì)心有郁結(jié)呆盖!但凡人與人交往拖云,都希望把最真實(shí)的一面展現(xiàn)在別人面前...
    自由是風(fēng)箏閱讀 537評(píng)論 7 5