模块依赖 - Android Studio

Gau*_*ora 5 android gradle

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

Project
  - M1
  - M2
Run Code Online (Sandbox Code Playgroud)

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

为此,我修改了M1和M2的build.gradle,如下所示:

M2:

compile project(':M1')
Run Code Online (Sandbox Code Playgroud)

M1 :(改为图书馆)

apply plugin: 'com.android.library'
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用并引发错误:

Could not find property 'applicationVariants' on com.android.build.gradle.LibraryExtension_Decorated@6de81701.
Run Code Online (Sandbox Code Playgroud)

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

dav*_*ola 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(或)将其替换为M2的build.gradle.