生成aar包
在build.gradle文件中,apply plugin: 'com.android.library'
引用aar包
在Application和Library中引用aar有些不同。
假設(shè)aar包的名字問“test.aar”
在Application module中引用aar
- 將aar放到module的aars目錄下
- 在build.gradle中添加
repositories {
flatDir {
dirs 'aars'
}
}
dependencies {
compile(name: 'test', ext: 'aar')
}
其實(shí)aar可以放到任意目錄,只要保證和flatDir中的名字一致即可。
在Library module中引用aar
比如A是一個(gè)Libray module,B是Application module,其中B依賴A,而A又依賴一個(gè)本地的aar。
此時(shí)如果還按上面那種方法去設(shè)置,變出現(xiàn)找不到aar的錯(cuò)誤。
這是因?yàn)長(zhǎng)ibrary A不會(huì)把自己的依賴打包給B,而只是告訴B自己的依賴列表,然后由B去加載所有的依賴包。
但是由于B在自己module下的aars目錄中沒有發(fā)現(xiàn)test.aar,所有才會(huì)報(bào)錯(cuò)。
問題的關(guān)鍵,就是要告訴B,應(yīng)該如何去找test.aar。在B的build.gradle文件中,設(shè)置好正確的flatDir即可。
repositories {
flatDir {
dirs project(":A").file('aars')
}
}