1、假设已经有了项目A打算将A项目生成aar
(1)在主app的build.gradle下 将 apply plugin: ‘com.android.application’ 修改为 apply plugin: ‘com.android.library’
(2)在主app的build.gradle下 将 defaultConfig {} 中的applicationId 去掉
如下图:

(3)处理插件应用中的AndroidMenifest.xml 文件。将启动activity去掉,其他activity 不用屏蔽,直接保留即可。这里必须屏蔽掉,因为应用加载aar时会自动合并AndroidMenifenst文件到主应用的清单文件中。否则就会在主应用的清单文件中出现两个启动activity。

按上述步骤修改完成后,重新rebuild 项目即可,之后会生成aar文件
路径如下:

需要注意的是我的demo中,添加了aar内部页面跳转,主要是为了测试一下aar是否和安装apk一样,能不能自行跳转,有没有完整的生命周期。
2、使用aar
新建一个demo主应用项目
(1)在app/libs 下放置刚刚的aar文件

(2)在app/build.gradle 下 android{} 节点中添加:
repositories {
flatDir {
dirs 'libs'
}
}
并引入依赖
implementation(name:'app-debug',ext:'arr')
build 后发现报错:
Build was configured to prefer settings repositories over project repositories but repository 'flatDir' was added by build file 'build.gradle'
上述方式在gradle7 版本以下是没问题的。如果是在gradle7+ 版本,需要如下解决方式:
dependencies {
implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs')
implementation(name:'app-debug',ext:'arr')
}
或:
implementation fileTree("libs\\sdk_Login.aar") // 括号内是aar包相对路径
不需要写firDir。
(3)build 出现them 冲突问题。在application标签中添加:

(4)打包apk,分析apk 可发现aar中的AndroidMenifest 全部合并到了主应用的清单中。
启动apk测试出现问题:
- 主apk打开首页跳转到了aar的首页
- aar内部跳转页面后出

本文介绍如何将项目打包成aar并在另一项目中集成使用。包括修改配置、处理清单文件冲突及资源冲突等问题。
最低0.47元/天 解锁文章
959

被折叠的 条评论
为什么被折叠?



