我的项目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.
关于如何解决这个问题的任何想法?
答案 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。