Android Studio多個module匯入AAR庫
阿新 • • 發佈:2018-12-25
介紹
有時候由於需要一些自定義之後的開源庫,無法使用jCenter裡面的官方庫,又懶得自己搭建Maven倉庫,所以我們想要自己在專案裡面直接匯入本地的AAR庫。
通用方法和問題
網上通用的AAR匯入Gradle的方法很簡單:
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
compile name: 'libname', ext: 'aar'
}
如果我們只有一個APP的情況下,這個方法就足以了,但是如果專案比較複雜,有多個Module都需要這個相同的aar庫,問題就來了。下面的專案中,我們有一個Application:app,兩個module:framework,custwidgets。並且兩個module都需要依賴Fresco的aar庫。我們把aar放到framework裡面,app和custwidgets都依賴於framework。現在編譯會報錯:
原因是編譯兩個module依賴了framework,但是在另外兩個目錄使用無法找到libs這個目錄(由於寫的相對路徑,對於app,搜尋的目錄就是app/libs/),把AAR引進來。目前Gradle引入AAR還比較弱,無法像jar一樣直接就依賴進去了。
最終方案
由於不想每一個module都放一份aar。所以,我們只能在flatDir下功夫。方案1是使用絕對路徑,這樣很不靈活,無法根本性的解決問題,後來突然靈機一動,我目錄使用”../framework/libs”不就可以找到這個路徑了麼:)。試了一下,果真work了。附上示例工程:http://download.csdn.net/detail/yutao52shi/9052009
現在開始Have fun with AAR吧:)