Gradle 3,如何让一个库对Android Studio 3中的其他模块可见?

时间:2018-02-02 17:39:01

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

这些是项目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中的课程。

我做错了什么?我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:1)

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