AS生成aar包并在其他工程引用aar包和遇到的坑#
前一段時(shí)間也寫(xiě)過(guò)一篇關(guān)于aar生成和引用的文章瞻想,有網(wǎng)友反映格式不標(biāo)準(zhǔn)压真,還有一些遇到的問(wèn)題沒(méi)有發(fā)出來(lái),所以再重新整理出來(lái)蘑险,圖文并茂流程清晰滴肿,希望大家多支持!話(huà)不多少干貨整起佃迄。
生成泼差、導(dǎo)出aar
-
在項(xiàng)目中File-New-New Module-Android Library-Next,如下圖
微信截圖_20181212105617.png -
到此會(huì)在你的項(xiàng)目中,生成一個(gè)Library,如下圖
微信截圖_20181212105811.png -
在生成的Library的項(xiàng)目中開(kāi)發(fā)呵俏,開(kāi)完完成堆缘,運(yùn)行assamble,生成aar,如下圖
微信截圖_20181212105915.png 到此生成了aar包普碎,導(dǎo)出即可
工程引用aar
-
把上一步導(dǎo)出的aar引入到需要引用的項(xiàng)目中套啤,一般放在app/libs文件夾中,在app/build.gradle中配置參數(shù)随常,如下圖
微信截圖_20181212114029.png -
在app的build.gradle文件添加如下內(nèi)容
apply plugin: 'com.android.application' android { xxxx } repositories { flatDir { dirs 'libs' //this way we can find the .aar file in libs folder } } dependencies { implementation(name: 'mylibrary-release', ext: 'aar') }
Rebuild運(yùn)行成功,直接引用即可萄涯,到此完成aar的生成绪氛、導(dǎo)出、引用涝影。
引用aar時(shí)找不到arr的遠(yuǎn)程依賴(lài)庫(kù)問(wèn)題
問(wèn)題描述:
如上述枣察,在library中引入第三方依賴(lài)(如下圖), 編譯生成aar燃逻,但是在引入的項(xiàng)目中編譯運(yùn)行時(shí)報(bào)錯(cuò): Caused by: java.lang.ClassNotFoundException:(如下圖)
解決辦法:
在引入aar的項(xiàng)目中的app/build.gradle添加找不到的第三方依賴(lài)序目,重新編譯成功。
-
需要上傳aar伯襟,不管上傳本地還是maven
- 生成aar目錄猿涨, 具體參考http://www.reibang.com/p/64c23ae5483d,詳細(xì)描述姆怪。
- 在需要的引入的項(xiàng)目的根build.gradle和app/build.gradle添加配置參數(shù)叛赚,重新編譯成功澡绩。
根build.gradle
buildscript { repositories { maven{ url 'xxxx'//本地路徑或者遠(yuǎn)程倉(cāng)庫(kù)路徑 //file://D://WorkSpace/myaar/repository/ } } } allprojects { repositories { maven{ url 'xxxx'//本地路徑或者遠(yuǎn)程倉(cāng)庫(kù)路徑 //file://D://WorkSpace/myaar/repository/ } } }
app/build.gradle
android { xxxx...... } dependencies { implementation 'xxx'//遠(yuǎn)程依賴(lài)名稱(chēng)和版本號(hào) //com.my.test:myaar:1.0.0 }
注釋?zhuān)合乱黄敿?xì)寫(xiě)一下生成aar構(gòu)建maven,發(fā)布在本地和github引用