在Android库中包含外部模块aar

时间:2015-08-03 16:29:30

标签: android android-gradle android-library

我有一个足够简单的Android库build.gradle文件(删除了无关的部分),

apply plugin: 'com.android.library'

repositories {
    maven { url 'https://dl.bintray.com/alexeydanilov/maven' }
}

dependencies {
    compile 'com.danikula:videocache:1.0.1'
}

我希望能够构建一个包含我想要的所有文件的Android库.aar,以及从videocache外部模块下载的所有文件。

我已经尝试了许多不同的技术来尝试实现这一目标(另一个项目,改变传递'设置' export = true'的设置)但都证明不成功而且我不确定我还能尝试什么。

如果我将源.jar文件下载到libs中,将必要的位添加到设置文件中,它会正确打包到.aar,但我似乎无法找到任何方法通过像这样参考外部模块来做到这一点。

1 个答案:

答案 0 :(得分:0)

首先,不建议将外部lib包含在aar文件中。之前的答案可以找到here

我引用了以下文字:

  

使用工件将其包含在aar中。整点   使用远程工件是不依赖于罐子而是依赖于罐子   神器地址,以便项目使用你的' aar'可以解决所有   它的依赖图,查找重复项,解决冲突等...

     

如果你发布你的'aar'在Maven上,神器POM将包含   依赖。如果您从多项目设置,项目中使用它   产生'aar'将这些依赖项发送给项目   引用它。

     

对于本地jar,因为那些无法知道jar文件的内容   我们必须在本地打包它,但这不是你的意思   应该使用,如果你要提交' aar'到神器回购。

因此,如果您想要包含和使用您的“aar”#39;来自远程仓库的lib,您可以先发布它,然后将此行添加到依赖项中:

compile 'Replace with the link to your lib'

如果你想使用' aar'来自本地的文件,还有一个不太完美但工作的方式来包含所有外部库,这只是复制这一行:

compile 'com.danikula:videocache:1.0.1'

使用lib的项目中的依赖项。但无论如何这不推荐。

希望我的回答可以帮助你。