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包