最近gradle升級了,然后編譯就出現了這個錯誤
Direct local .aar file dependencies are not supported when building an AAR.
然后求助了百度,給出了下面解決方案
在module的build.gradle
文件中增加如下內容:
android {
........
repositories {
flatDir {
dirs 'libs'
}
}
}
dependencies {
....
implementation(name: 'BaiduLBS_AndroidSDK_Lib', ext: 'aar')
}
這樣子確實可以了,其實就是將libs作為本地倉庫,然后引用參考下的庫文件。但是編譯時候會有這個提示
Using flatDir should be avoided because it doesn't support any meta-data formats.
我是個完美的人,網上又中了一圈,提出File->New->New Module -> Import .jar/.aar。
然后在build.gradle
文件中引入依賴implementation project(path: ':xxxxx')
在舊版本的AndroidStudio中是可以的,在新版的AndroidStudio中已經移除了這個功能,你奶奶的也不知道為啥。
我也懶得翻看更新日志了。所以我用舊版本導入一個aar作為一個module。導入后發現就多了一個build.gradle文件。
綜上總結,在高版本的AndroidStudio並且使用了版本的gradle出現了上述問題可以按着如下引用
- 在你工程根目錄下新建一個文件夾YouLib,將你的aar文件放入,然后在該目錄下新建一個build.gradle文件
- 在settings.gradle 導入該工程
include ':YouLib'
- 在你需要依賴的工程里面的build.gradle中增加依賴
implementation project(path: ':YouLib') // 這里需要注意的是,YouLib是你aar庫所在文件夾
當然如果你有很多aar庫,那么你需要在根目錄創建一個LocalRepo目錄,然后將你不同的aar庫放在不同文件夾下。在setting.gradle分別導入