模块依赖 - Android Studio

时间:2015-02-16 17:39:42

标签: android gradle

我的项目M1,M2下有2个模块

Project
  - M1
  - M2

早些时候,我将M1作为我的主要应用程序。然而,需要新的应用程序M2与M1共享许多常见的东西。所以,我创建了一个新模块M2,其中M1作为依赖。

为实现这一目标,我修改了M1和M2的build.gradle,如下所示:

M2:

compile project(':M1')

M1 :(已更改为库)

apply plugin: 'com.android.library'

然而,这不起作用并引发错误:

Could not find property 'applicationVariants' on com.android.build.gradle.LibraryExtension_Decorated@6de81701.

关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:13)

来自文档:

  

在Android项目中,这有点复杂,因为可能会有大量相同的任务,并且它们的名称是根据构建类型和产品口味生成的。

为了解决这个问题,android对象有两个属性:

applicationVariants(仅适用于app插件)

libraryVariants(仅适用于库插件)

testVariants(适用于两个插件)

这三个分别返回ApplicationVariant,LibraryVariant和TestVariant对象的DomainObjectCollection。

http://tools.android.com/tech-docs/new-build-system/user-guide

因此,M1中的build.gradle似乎使用不适用于库项目的属性applicationVariants。由于我不知道你在做什么,我可以猜测你需要(1)用libraryVariants替换它或者(2)将它移动到M2的build.gradle。