如何将多个AAR/Jar/Gradle依赖打包为单个AAR库?
打包多类型依赖为单个AAR的解决方案
针对你梳理的几个问题,直接给出明确结论和方案:
Android Studio禁止嵌套AAR生成AAR
这是Gradle官方的设计限制,因为AAR包含资源、Manifest等Android专属组件,直接嵌套会引发资源ID冲突、清单合并失败等问题,官方不支持这种打包方式。Fat AAR对Kotlin DSL的支持
社区维护的Fat AAR插件已经适配Kotlin DSL,只要使用适配Gradle 7及以上版本的插件版本,就能在build.gradle.kts中正常配置。示例配置如下:plugins { id("com.android.library") kotlin("android") id("com.kezong.fat-aar") } dependencies { // 嵌入本地模块 embed(project(":your-local-module")) // 嵌入远程Gradle依赖 embed("com.example:some-dependency:1.0.0") // 嵌入本地libs目录下的AAR/JAR embed(fileTree("libs") { include("*.aar", "*.jar") }) }解决Gradle依赖需应用层重复导入的问题
不要用implementation或api声明需要打包的依赖,改用Fat AAR提供的embed配置项,插件会将依赖的代码、资源、Manifest等全部合并到最终生成的AAR中,应用层直接导入这个打包后的AAR就能使用所有内部类,无需额外导入原依赖。
额外注意事项
- 提前确认依赖的开源许可协议,部分库禁止二次分发,打包前需确保合规。
- 打包后务必做完整测试:验证所有类的可访问性、资源是否正常加载、JNI库(如果有)是否能调用,避免出现合并遗漏或冲突。
内容的提问来源于stack exchange,提问作者Omar HossamEldin
相关产品推荐
相关产品推荐

