我想建立一个Android库,并将其与其他子库一起打包。

我有一个像这样的项目:

sdk

  • mainLib
  • libA
  • libB

  • 我想用libA构建mainLib,将libB打包在mainLib.aar中。
    这样,我可以将mainLib分发给包含libA和libB的用户。

    我的mainLib build.grade依赖关系块如下所示:
        

dependencies
    
        {

    
        compile project(‘:libA:libA-library')

    
        compile project(':libB:libB-   library'')
  


    
        }


    

    我已经尝试了上面的方法,但是我发现mainLib aar不包含libA和libB。请帮忙。

    最佳答案

    它是正确的。 MainLib.aar不包含其他aar库。

    但是,Maven将管理正确的依赖项。

    如果您将发布在Maven仓库中,您将看到以下内容:

    libA.pom

    <project>
       <groupId>mygroupID</groupId>
       <artifactId>libA</artifactId>
       <version>X.Y.Z</version>
       <packaging>aar</packaging>
    </project>
    

    MainLib.pom
    <project>
       <groupId>mygroupID</groupId>
       <artifactId>mainLib</artifactId>
       <version>X.Y.Z</version>
       <packaging>aar</packaging>
    
      <dependencies>
        <dependency>
          <groupId>mygroupID</groupId>
          <artifactId>libA</artifactId>
          <version>X.Y.Z</version>
          <scope>compile</scope>
        </dependency>
      </dependencies>
    </project>
    

    这意味着如果有人将使用build.gradle:
    dependencies{
        compile 'mygroupID:mainLib:X.Y.Z'
    }
    

    Gradle将下载MainLib.aar和所有其他依赖项。

    10-05 17:46