假設android Library引用結構為
TopLibModule
|
SecondLibModule
|
MainAppModule
然后項目需要引用第三方(或者可以把一些相對固定的
Library編譯為aar來優化編譯)aar文件;
通常給相應的 Module 增加 aar引用就好了,
比如 TopLibModule 引用 one.aar
這時候給 給 TopLibModule 的build.gradle 增加
repositories {
flatDir {
dirs '../libs';
}
}
dependencies {
compile(name:'one', ext:'aar')
}
這里的 “../libs” 是相對的,SecondLibModule 和
MainAppModule 中顯然沒有 相應的 one.aar 所以
報錯。
解決方案一:為one.aar 新建一個 aar module,引用之;
但這樣一來 每次多一個aar就要多一個 module
解決方案二:在頂部的 library的 libs中放入aar,在項目的
build.gradle中修改
allprojects {
repositories {
jcenter()
flatDir {
dirs '../TopLibModule/libs';
}
}
}
需要用到 aar的Module 中加入對應的引用
compile(name:'one', ext:'aar')
dirs '../TopLibModule/libs';
這個只是一個相對路徑,也可以新建一個目錄,比如跟
TopLibModule同級別的 ExtendedAars 目錄下放入多個aar
項目build.gradle 引用為 dirs '../ExtendedAars';
另 把 aar編譯為 release的方法為:
aar module 的源碼工程里 Open module setting , 把aar module 引入某個 module,
dependencies中找到aar module,最右側列 Scope,選擇對應的編譯選項。