我正在构建一个打包为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?
这还不可能吗?我会假设将代码拆分成多个模块并不是一种不好的做法吗?
答案 0 :(得分:8)
这还不可能吗?
正确,至少通过标准构建工具。可能存在第三方插件,脚本或其他配方来从AAR及其依赖项中创建“胖AAR”。
我认为将代码拆分为多个模块并不是一种不好的做法?
拥有多个模块对于本地开发来说非常好。但是,模块是依赖项。当您发布库时,您需要满足所有这些依赖项,其中包括您的任何模块。反过来,这意味着您的库所依赖的任何模块也必须是库,以您的顶级库的使用者能够获得这些依赖关系的方式分发。
答案 1 :(得分:4)
您可以尝试在此处发布的fat-aar.gradle脚本:https://github.com/adwiv/android-fat-aar