如何在另一个库中包含Android库模块?

时间:2014-12-15 14:41:03

标签: android gradle android-gradle android-library

我正在构建一个打包为aar并分发给第三方开发人员的Android库。

结构非常简单:

项目 --- LibraryA的 --- libraryB

libraryA需要libraryB,这就是为什么在它的gradle文件中有这个:

compile project(':libraryB')

而settings.gradle有

include ':libraryB', ':libraryA'

但是,如果我将项目构建为aar,它只包含libraryA。我错过了什么?

我阅读了对此的回复:Android Studio how to package single AAR from multiple library projects?

这还不可能吗?我会假设将代码拆分成多个模块并不是一种不好的做法吗?

2 个答案:

答案 0 :(得分:8)

  

这还不可能吗?

正确,至少通过标准构建工具。可能存在第三方插件,脚本或其他配方来从AAR及其依赖项中创建“胖AAR”。

  

我认为将代码拆分为多个模块并不是一种不好的做法?

拥有多个模块对于本地开发来说非常好。但是,模块是依赖项。当您发布库时,您需要满足所有这些依赖项,其中包括您的任何模块。反过来,这意味着您的库所依赖的任何模块也必须是库,以您的顶级库的使用者能够获得这些依赖关系的方式分发。

答案 1 :(得分:4)

您可以尝试在此处发布的fat-aar.gradle脚本:https://github.com/adwiv/android-fat-aar