Gradle 新手,正在尝试创建构建变体。我刚刚向 gradle 文件添加了一个productFlavor,突然我收到了这个奇怪的错误
$ gradle tasks
Creating properties on demand (a.k.a. dynamic properties) has been deprecated and is scheduled to be removed in Gradle 2.0. Please read http://gradle.org/docs/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html for information on the replacement for dynamic properties.
Deprecated dynamic property: "srcDirs" on "source set aild", value: "[src]".
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring root project 'SegmentIO'.
> Cannot add task ':assembleTest' as a task with that name already exists.
这是我完整的 build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.8.+'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
}
android {
buildToolsVersion "19.0.1"
compileSdkVersion 17
productFlavors {
test {
}
prod {
}
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src', 'bundled-src']
resources.srcDirs = ['src']
aild.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
}
// test.assets.srcDirs = ['$java-project-root/assets/test']
// prod.assets.srcDirs = ['$java-project-root/assets/test']
instrumentTest.setRoot('tests')
}
dependencies {
compile fileTree(dir: './libs', include: 'Amplitude.jar')
}
}
最佳答案
我发现两个问题:
Deprecated dynamic property: "srcDirs" on "source set aild", value: "[src]".
是因为您在构建文件中拼错了 aild.srcDirs
- 它应该是 aidl.srcDirs
。
> Cannot add task ':assembleTest' as a task with that name already exists.
是因为您正在尝试创建一个名为“test”的 flavor ,但它正在被构建中的其他内容使用并且发生冲突。尝试使用不同的名称。
更具体地说,Android 插件根据 flavor 名称执行许多任务(它也使用构建类型执行此操作)。如果您的 flavor 名称为“foo”,assembleFoo 会执行 assemble,但仅针对 foo flavor 。已经有一个 assembleTest 任务,因此当它尝试为您的口味创建一个任务时会发生冲突。
关于android - Gradle ProductFlavors 引发错误 - 无法添加任务 ':assembleTest',因为具有该名称的任务已存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22154973/