最近遇到一个问题,由于引入了原生得库文件,但是这个由于是远程引用,不允许修改,后来正好研究一下是否可以将Android项目打成 aar 文件,作为SDK给其他项目引用
基本概念
aar包,jar包 有什么区别?
aar包:包含所有资源,如class ,res 资源文件, xml 布局文件等,arr 包可以发布到Maven库
jar包: 只包含 class 文件 和清单文件,不包含 res 资源文件
生成 aar
- 修改要打包项目 app 的 build.gradle 文件
- 将apply plugin: ‘com.android.application’改为apply plugin: ‘com.android.library’
- 去掉applicationId
- 清单文件AndroidManifest.xml 将application的name icon lable theme roundIcon等属性去掉并去掉启动页的入口
- 点击 右侧 “Gradle”-》“assemble ”(前提已经在app的bulid.gradle对apk 进行签名,如果没有签名,可以点击assembleDebug),可以在app/build/outputs/aar 目录下看到生成的 aar 文件
引用aar 文件
- 把 aar 文件放在 libs 目录下
- 修改 app 的 build.gradle 文件,然后重新编译,可以在External Libraries看到 aar 文件已经被加载
//添加
repositories {
flatDir {
dirs 'libs'
}
}
//dependencies 中添加
implementation files('libs/app-debug.aar')
导入成功