如何快速合并Android依赖?Fat-AAR插件完整使用指南 🚀
Fat-AAR是一款强大的Gradle插件,专为Android开发者设计,能够将多个依赖项合并到最终的.aar文件中,完美支持AGP 3.0及以上版本。无论是开发SDK还是模块化项目,它都能帮你轻松搞定依赖打包难题!
📌 为什么选择Fat-AAR?
在Android开发中,当你需要将多个库模块打包成单个AAR文件时,手动处理依赖合并常常令人头疼。Fat-AAR插件通过自动化方式解决了这一痛点,支持本地库、远程库和第三方依赖的无缝整合,让SDK分发变得前所未有的简单!
✨ 核心优势
- 一键合并:自动处理资源、代码和so库的合并
- 灵活配置:支持选择性嵌入依赖和transitive控制
- 多变体支持:完美适配productFlavors和buildTypes
- AGP兼容:全面支持Android Gradle Plugin 3.0+
📋 准备工作
环境要求
- Android Studio:推荐最新稳定版
- Gradle:根据AGP版本选择兼容版本(详见官方文档)
- JDK:JDK 1.8及以上(v1.3.8+已修复JDK兼容性问题)
🚀 快速安装步骤
步骤1:引入插件依赖
在项目根目录的build.gradle中添加:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.github.kezong:fat-aar:1.3.8'
}
}
步骤2:应用插件到库模块
在你的library模块(如lib-main)的build.gradle中添加:
apply plugin: 'com.kezong.fat-aar'
步骤3:声明要嵌入的依赖
使用embed替代传统的implementation或api关键字:
dependencies {
// 嵌入本地模块
embed project(':lib-aar')
embed project(':lib-aar2')
// 嵌入本地AAR文件
embed(name: 'lib-aar-local', ext: 'aar')
// 嵌入远程依赖
embed 'com.google.guava:guava:20.0'
}
⚙️ 高级配置技巧
排除特定依赖
如需排除嵌入依赖中的某个子依赖:
embed('com.example:some-lib:1.0') {
exclude group: 'com.unwanted', module: 'dependency'
}
资源合并策略
插件会自动处理资源冲突,你也可以在android配置块中自定义:
android {
resourcePrefix 'mylib_' // 为资源添加前缀避免冲突
}
查看合并结果
构建后可在模块的build/outputs/aar/目录下找到合并后的AAR文件,通过Android Studio的AAR分析工具查看内部结构。
📝 常见问题解决
❓ AAR体积过大?
- 使用
exclude排除不必要的依赖 - 配置
transitive = false关闭传递依赖 - 优化资源文件(如压缩图片、删除未使用资源)
❓ 资源冲突报错?
- 在
AndroidManifest.xml中使用tools:replace属性 - 重命名冲突资源文件
- 检查第三方库的资源命名规范
❓ Gradle版本不兼容?
查看插件官方文档获取最新兼容性列表,或尝试降级Gradle版本。
🎯 最佳实践
项目结构推荐
your-project/
├── app/ // 示例应用
├── lib-main/ // 主库模块(应用Fat-AAR)
├── lib-aar/ // 子模块1
├── lib-aar2/ // 子模块2
└── lib-java/ // Java库模块
测试验证流程
- 执行
./gradlew :lib-main:assembleRelease构建 - 检查
lib-main/build/outputs/aar/目录下的产物 - 通过
apkanalyzer工具验证AAR内容:apkanalyzer manifest print lib-main-release.aar
📚 资源获取
- 官方源码:source/groovy/com/kezong/fataar/
- 示例项目:example/
- 问题反馈:通过项目Issue跟踪系统提交
🎉 总结
Fat-AAR插件彻底改变了Android库的打包方式,让依赖合并从繁琐的手动操作变成简单的配置任务。无论是个人开发者还是企业团队,都能从中显著提升SDK开发效率。现在就尝试集成Fat-AAR,让你的Android库分发工作事半功倍!
提示:定期关注插件更新,以获取最新的兼容性修复和功能增强。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



