我有一个足够简单的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库,其中包含我想要的所有文件,还有来自外部模块的所有文件。
我尝试了许多不同的技术来尝试实现这个目标(另一个项目,更改了“transitive”的设置,尝试了“export=true”),但都被证明是不成功的,我不确定还能尝试什么。
如果我下载了source.jar文件,把它放到libs中,在设置文件中添加必要的位,它就会正确地打包到.aar中,但是我似乎找不到任何方法通过这样引用外部模块来完成它。

最佳答案

首先,不建议在aar文件中包含外部lib。对此,可以找到以前的答案:
我引用了以下文字:
使用工件不会将其包含在aar中。整个要点
使用远程工件不是依赖jar而是依赖于
工件地址,以便使用“aar”的项目可以解决所有
它的依赖关系图,查找重复项,解决冲突等…
如果在maven上发布“aar”,则工件pom将包含
依赖关系。如果从多项目设置中使用它,则
生成“aar”将把这些依赖项发送到项目
引用它。
对于本地jar,因为这些都无法知道jar文件
我们必须在本地打包,但这并不是你想要的
如果要将“aar”提交到工件repo,则应使用。
因此,如果要包括并使用远程repo中的“aar”库,可以先发布它,然后将此行添加到依赖项中:

compile 'Replace with the link to your lib'

如果您想从本地使用“aar”文件,还有一种不太完美但可行的方法来包含所有外部lib,这就是简单地复制这一行:
compile 'com.danikula:videocache:1.0.1'

到正在使用lib的项目中的依赖项。但无论如何,这是不推荐的。
希望我的回答能帮助你。

关于android - 在Android Library AAR中包含外部模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31792342/

10-12 04:00