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

我正在构build一个Android库,打包成一个aar并分发给第三方开发者。

结构非常简单:

项目— libraryA — libraryB

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

compile project(':libraryB') 

和settings.gradle有

 include ':libraryB', ':libraryA' 

但是,如果我把这个项目build成一个aar,它只包含libraryA。 我错过了什么?

我读了这个回应: Android Studio如何从多个库项目打包单个AAR?

这是不可能的? 我会假设把你的代码分成多个模块是不是不好的做法?

  • Gradle编译错误“没有方法的签名”
  • Android Gradle DexException:多个dex文件定义Lorg / hamcrest / Description
  • 在项目依赖项中,jar“已添加到输出”错误
  • Gradle Android测试
  • 在打包APK期间复制文件
  • 如何用Android Gradlereplacestring资源
  • 将Gradle与现有的Android项目一起使用
  • Android Studio无法在任务':project:dexDebug'上调用IncrementalTask​​.taskAction()
  • 你可以试试这里发布的fat-aar.gradle脚本: https : //github.com/adwiv/android-fat-aar

    这是不可能的?

    正确的,至less通过标准的构build工具。 可能有第三方插件,脚本或其他配方来创buildAAR及其依赖关系中的“胖AAR”。

    我会假设把你的代码分成多个模块是不是不好的做法?

    拥有多个模块对于本地开发来说是完美的。 但是,模块是依赖关系。 当你运送一个库时,你需要满足所有这些依赖关系,这将包括你的任何模块。 这反过来又意味着你的库依赖的任何模块也必须是库,这样你的顶级库的使用者就能够获得这些依赖。