【问题标题】:How to include dependencies into .aar library?如何将依赖项包含到 .aar 库中?
【发布时间】:2016-01-06 16:26:29
【问题描述】:

我使用的是 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'
}

在构建 projectn 并同步 gradle 之后,我在我的 module/build/ouputs/aar 文件夹中获得了 lib-release.aar。比我尝试 File>New Module>Import JAR\AAR 它。然后,添加后

compile project(':mylib-release')

在“外部库”树中,我只获得了没有声明依赖关系的包。如何仅通过编译我的库来启用这些包的自动安装?

【问题讨论】:

  • 为什么在依赖闭包中有apply插件调用?

标签: android gradle android-gradle-plugin aar


【解决方案1】:

使用

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

而不是

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

【讨论】:

    【解决方案2】:

    provided 表示您将针对依赖项进行编译,但在运行时,系统将通过类加载器提供这些依赖项(它们不会捆绑在您的 APK 中)。

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

    【讨论】:

      猜你喜欢
      • 2016-01-31
      • 2018-04-02
      • 2018-11-09
      • 2015-11-11
      • 1970-01-01
      • 1970-01-01
      • 2016-07-28
      • 2015-11-26
      • 1970-01-01
      相关资源
      最近更新 更多