1. 子產品的相對關系:
2.子產品的依賴情況
1). apps的build.gradle:
dependencies {
api fileTree(dir: 'libs', include: ['*.jar'])
api project(':models:model')//apps#app要依賴models#model
}
2). models的build.gradle:
dependencies {
api fileTree(include: ['*.jar'], dir: 'libs')
api project(':libraries:library')//models#model要依賴libraries#library
api(name: '11', ext: 'aar')
api(name: '12', ext: 'aar')
}
3). libaries的build.gradle:
dependencies {
api fileTree(dir: 'libs', include: ['*.jar'])
api(name: '21', ext: 'aar')
api(name: '22', ext: 'aar')
}
apps依賴models, models依賴libaries
3. 各子產品repositories的依賴路徑
1). apps的repositories下的依賴路徑為:
android{
repositories {//repositories須在 android{}節點下
flatDir {
dirs 'libs', '../../models/model/libs/','../../libraries/library/libs/'
}
}
}
2). models的repositories下的依賴路徑為:
android{
repositories {
flatDir {
dirs 'libs', '../../libraries/library/libs/'
}
}
}
3). libaries的repositories下的依賴路徑為:
android{
repositories {
flatDir {
dirs 'libs'
}
}
}
4. 各子產品的build.gradle:
1). apps的build.gradle:
android{
repositories {//repositories須在 android{}節點下
flatDir {
dirs 'libs', '../../models/model/libs/','../../libraries/library/libs/'
}
}
}
dependencies {
api fileTree(dir: 'libs', include: ['*.jar'])
api project(':models:model')//apps#app要依賴models#model
}
2). models的build.gradle:
android{
repositories {
flatDir {
dirs 'libs', '../../libraries/library/libs/'
}
}
}
dependencies {
api fileTree(include: ['*.jar'], dir: 'libs')
api project(':libraries:library')//models#model要依賴libraries#library
api(name: '11', ext: 'aar')
api(name: '12', ext: 'aar')
}
3). libaries的build.gradle:
android{
repositories {
flatDir {
dirs 'libs'
}
}
}
dependencies {
api fileTree(dir: 'libs', include: ['*.jar'])
api(name: '21', ext: 'aar')
api(name: '22', ext: 'aar')
}
5. 參考:
Android module library中添加aar包的那些坑
android studio library 子產品中正确引用aar
ps:
1).如何解壓aar包中的jar檔案
下載下傳jd-gui-windows-1.4.0檔案, 位址 提取碼: eter 。
輕按兩下jd-gui.exe,把對應jar檔案拖入即可。
2).如何生成aar包
參考:Android studio如何生成aar包
Android将library打包成jar包和aar包