将Android Studio项目用作库

时间:2015-11-25 10:40:35

标签: android-studio gradle android-gradle

我在Android Studio(1.3.0)中创建了一个项目,其中包含多个模块,将作为库用于其他项目。

图书馆计划:

在我的库中,一些模块对其他模块有一些依赖( intraproject依赖)。假设libmod1依赖于libmod2。在libmod1 build.gradle 中,我有compile project(':libmod2')

应用项目:

从应用程序项目中,我想导入libmod1项目间依赖项)。在 build.gradle 中,我添加了compile project(':..:LibProject:libmod1')

问题:

当我构建应用程序项目时,我从gradle收到错误消息:

  

错误:(24,0)带路径'的项目:libmod2'无法找到   project':..:LibProject:libmod1'。

Gradle无法解决工程内项依赖关系。 我必须将libmod1 build.gradle 更改为compile project(':..:LibProject:libmod2')才能摆脱此错误。这意味着当我从另一个项目引用它们时,必须更改intraproject依赖项。

问题:

有没有办法告诉Gradle项目内部依赖项是相对于库项目而不是相对于应用程序项目?这样当我对库模块的项目间依赖项时,项目内项依赖项可以解决?

当然,我也可以删除模块之间的项目内依赖关系。但有没有不同的方法来解决这个问题?

Sketch of the situation

1 个答案:

答案 0 :(得分:2)

您必须在 settings.gradle 中添加依赖项。如果模块位于同一文件夹中,则只需通过

连接即可
include ':libmod1',':libmod2'

如果您的库位于其他文件夹(不在任何子文件夹中),则必须在 settings.gradle 中连接它们:

project(':libmod1').projectDir = new File(settingsDir, '../path/to/libmod1')

另见https://docs.gradle.org/current/userguide/multi_project_builds.html