如何将依赖项包含到 .aar 库中?

How to include dependencies into .aar library?

我正在使用 Android Studio 1.4

我的项目中有一个模块在 build.gradle 中具有下一个依赖项:

dependencies {
    provided fileTree(dir: 'libs', include: ['*.jar'])
    provided 'junit:junit:4.12'
    apply plugin: 'com.google.gms.google-services'
    provided 'org.apache.directory.studio:org.apache.commons.io:2.4'
    provided 'com.google.android.gms:play-services:8.1.0'
    provided 'com.fasterxml.jackson.core:jackson-databind:2.2.0'
    provided 'com.fasterxml.jackson.core:jackson-core:2.2.0'
    provided 'com.fasterxml.jackson.core:jackson-annotations:2.2.0'
}

构建项目并同步 gradle 后,我在 module/build/ouputs/aar 文件夹中获得了 lib-release.aar。比我尝试文件 > 新模块 > 导入 JAR\AAR 它。然后,添加

compile project(':mylib-release')

我在 "External Libraries" 树上得到的只是我的包,没有声明的依赖关系。如何通过仅编译我的库来启用这些包的自动安装?

provided 意味着您将针对依赖项进行编译,但在运行时,系统将通过 class 加载程序提供这些依赖项(它们不会捆绑在您的 APK 中)。

通常您会想要使用 compile,而不是 providedprovided 依赖项的一个示例是 Android SDK 本身。如果您使用 gradle,Android 插件会在编译时处理使其可用,但是您不需要显式调用它。

使用

compile fileTree(dir: 'libs', include: ['*.jar'])

而不是

provided fileTree(dir: 'libs', include: ['*.jar'])