旧有的引入办法
以前引入的方法,通常要分三个步骤
(1) 把aar放入libs文件夹
(2) 修改该module下的build.gradle文件
- 将libs设置为本模块的依赖仓库
repositories {
flatDir {
dirs 'libs'
}
}
- 引入具体的aar包
api(name: 'LiteAVSDK_Professional', ext: 'aar')
(3) 修改根目录下的build.gradle文件
allprojects {
repositories {
jcenter()
flatDir {
dirs 'libs', '../module名/libs'
}
}
}
这种办法首次使用时设置比较繁琐,且后续改动较大。无论是增加还是删除aar包都需要手动修改build.gradle文件。
新的引入方式
在开发中,我们通常还要引入jar包。但是jar包放入libs,同步一下立即可用了。
同样仿照jar包的引入方式,aar包也可以做到这样的效果,只要改动本module的build.gradle中的依赖即可。
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
}
改为
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
}
如此,aar的引入过程就跟jar一模一样了。首次配置,改动极小,且后续新增删除都无需变动,同步一下就可以使用了。
注意事项:
(1) 通过这种方式引入的aar,将拥有统一的访问权限。在示例中我使用了implementation。这意味着libs下的所有aar仅限于本module访问,上层module无法访问。如果改为api引入方式,所有的aar又统一对上层module可见了。因此当需要区分访问权限的时候,这种方式就不太适用了。不过一般来说这么做并不会有什么问题,毕竟jar已经这么做了。
(2) 在gradle plugin 3.5.0之后,使用这种方式集成,可能会导致打包失败
同步按钮:Android Studio的这个图标,跟每次变动gradle文件自动弹出的Sync now作用是一样的。