【问题标题】:Gradle 3, how to make a library visible to other modules in Android Studio 3?Gradle 3,如何使库对 Android Studio 3 中的其他模块可见?
【发布时间】:2018-02-02 17:39:00
【问题描述】:

这些是项目 1 中名为“mylibrary1”的库模块的依赖项

dependencies {
  implementation fileTree(dir: 'libs', include: ['*.jar'])
  api 'com.android.volley:volley:1.0.0'
  ...
}

这里的关键字 api 是为了将这种依赖关系传递给我自己的库的消费者(我使用的是 Gradle 3)。一切顺利,.aar 文件已制作完成。

然后让我们转到另一个项目 2,它是库的使用者。我点击文件 > 新模块 > 导入 .jar/.aar 并选择我之前制作的 aar 文件。

我检查了 settings.gradle 是否包含新模块,然后以这种方式将依赖项添加到消费者

api project(':mylibrary1')

再次,关键字api是重用来自另一个项目的代码将使用项目2的aar的必要条件。无论如何,即使我放置关键字实现它也不会改变。

从项目 2 的课程中​​,我可以看到我在 mylibrary1 中的所有课程,但 Volley 中的课程除外。

我做错了什么?我该如何解决这个问题?

【问题讨论】:

  • aar 文件不包含传递依赖项
  • 我应该如何将库添加到另一个项目,同时保持依赖关系?
  • 真倒霉,谢谢。我的目标是将库与其他项目分开,并保持库代码的单一版本

标签: android android-studio gradle android-gradle-plugin dependencies


【解决方案1】:

当你打包你的 AAR 时,它不会包含传递依赖,只有你自己的代码。因此,您需要在项目 2 中添加 Volley 依赖项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    • 2018-04-08
    • 1970-01-01
    相关资源
    最近更新 更多