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

Phi*_* E. 13 android gradle android-library android-gradle-plugin

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

结构非常简单:

项目--- libraryA --- libraryB

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

compile project(':libraryB')
Run Code Online (Sandbox Code Playgroud)

而settings.gradle有

include ':libraryB', ':libraryA'
Run Code Online (Sandbox Code Playgroud)

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

我阅读了对此的回答:Android Studio如何从多个库项目中打包单个AAR?

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

Com*_*are 9

这还不可能吗?

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

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

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

  • 你能给出一个脚本或第三方插件的例子吗? (2认同)

Vla*_*kiy 6

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