【发布时间】:2014-10-21 00:20:49
【问题描述】:
我有一个多项目 Android 构建系统。项目结构如下:
Root Dir
|
settings.gradle
|
build.gradle
|
Apps
|
app 1
|
build.gradle
|
app 2
|
build.gradle
|
Libs
|
lib 1
|
build.gradle
|
lib 2
|
build.gradle
所有的应用程序和库都有共同的 android 配置。
在根级别 build.gradle 我有以下内容:
subprojects {
apply plugin: 'android'
android {
compileSdkVersion "Google Inc.:Google APIs:19"
buildToolsVersion "20.0.0"
defaultConfig {
minSdkVersion 14
targetSdkVersion 19
}
}
}
接下来我想在 app 1 的 build.gradle 中添加以下内容
apply plugin: 'com.android.application'
android {
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
res.srcDirs = ['res']
}
}
}
我收到以下错误:
Cannot add extension with name 'android', as there is an extension already registered with that name.
在android的gradle插件中,有没有办法拥有一个可以通过子模块扩展的“master android configuration”?
【问题讨论】:
-
您确定问题不在于将
apply plugin设置在两个不同的位置,并使用两个不同的插件 ID? -
可能是个愚蠢的问题,如果不在 gradle 文件中应用 android 插件,可以有一个“android { ... }”部分吗?
-
否,但您已将
android应用于所有子项目。 -
对不起更多愚蠢的问题,我试图了解 android 插件和 gradle 的一般工作原理。我需要应用两个不同的插件,一个用于库项目
android library和android application用于应用程序。除此之外,我还需要一个common android configuration,它适用于所有子项目。
标签: android gradle android-gradle-plugin