很多博客都是这么说的:
repositories {//添加一个本地仓库
flatDir {
dirs 'libs'
}
}
dependencies {
//依赖本地仓库中的aar
implementation(name: 'miit_mdid_1.0.8', ext: 'aar')
}
但是有这样一种场景:
- A moudle中依赖aar
- B , C, D moudle 依赖 A moudle
- app 依赖 B, C, D 三个moudle
那么分别需要在 app A B C D 5个moudle中添加本地仓库配置:
repositories {//添加一个本地仓库
flatDir {
dirs 'libs'
}
}
其中不添加本地仓库报错如下:
这对于大多数项目都是非常痛苦的, 有一个更简单的方案:
- 在rootProject的build.gradle中, 修改如下配置:
allprojects { repositories { google() jcenter() //在遍历工程下所有moudle时为所有moudle配置本地仓库 flatDir { //rootProject.projectDir.getAbsolutePath()即项目根目录 //需要在项目根目录新建aar文件夹, 把aar文件放进去: //比如我把 miit_mdid_1.0.8.aar 放入aar文件夹 dirs new File(rootProject.projectDir.getAbsolutePath() + '/aar') } } }
- 在需要依赖 aar 的地方直接使用:
implementation(name: 'miit_mdid_1.0.8', ext: 'aar')
依赖即可
注意事项:
- 如果发现已经成功依赖aar但是无法调用相应的类,则重启android studio(仅重启即可, 不用清缓存)
- 如果添加依赖后出现如下图所示错误, 或者说什么时间戳失效的错误, 请把aar解压, 再重新以zip格式压缩即可解决