Android中 aar 文件的日常使用

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

什么是aar

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

如何打包aar

新建Library

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

選中Gradle視圖窗口

點(diǎn)擊Android Studio右側(cè)Gradle,顯示中選中你的庫,然后依次選中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è)類,打開aar文件查看這個(gè)類明明存在。

...掙扎中...

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

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

資源命名問題

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

最后說兩句

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

歡迎訪問博客: https://leonhua.github.io/ ,查看更多文章。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容