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

11

我正在使用 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/outputs/aar文件夹中获得lib-release.aar。然后我尝试通过File>New Module>Import JAR\AAR来导入它。然后,在添加后...

compile project(':mylib-release')

我只获取了我的软件包,没有在"外部库"中列出的依赖项。如何通过仅编译我的库来启用这些软件包的自动安装?


3
为什么你在dependencies闭包中使用了apply plugin调用? - Kirill Rakhman
2个回答

6

使用

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

替代

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

2

provided 表示你将编译依赖项,但在运行时,系统将通过类加载器使它们可用(它们不会捆绑在您的 APK 中)。

通常,您应该使用 compile,而不是 provided。一个 provided 依赖项的例子是 Android SDK 本身。如果您正在使用 gradle,则 Android 插件会处理在编译时使其可用,因此您无需明确调用它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接