在開發(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)行顯示如下表示成功:

然后可以到 你的項(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/ ,查看更多文章。