我将andoirdannotations集成到一个gradle构建过程中到一个通用的android项目中。当我尝试通过添加apply plugin: 'androidannotations
构建项目时,出现以下错误:
$ gradle clean
FAILURE: Build failed with an exception.
* What went wrong:
Main Manifest missing from /tmp/RunTest/src/main/AndroidManifest.xml
注意(1):我想维护通用的android项目结构。
注意(2):我已经成功构建/清理了没有androidannotations插件的项目
build.gradle文件:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.3'
classpath 'net.ealden.gradle.plugins:gradle-androidannotations-plugin:0.3.0'
}
}
apply plugin: 'android'
apply plugin: 'androidannotations'
repositories {
mavenCentral()
}
android {
def target = 'android-21'
def androidAnnotationsVersion = '2.7.1'
sourceSets {
main {
manifest {
srcFile 'AndroidManifest.xml'
}
java {
srcDir 'src'
}
res {
srcDir 'res'
}
assets {
srcDir 'assets'
}
resources {
srcDir 'src'
}
}
test {
java {
srcDir 'tests/src'
}
}
}
}
因此,我已设法维持通用的android项目结构并将项目目录结构强制为此处指出的结构http://tools.android.com/tech-docs/new-build-system/using-the-new-build-system。
正如预期的那样,这解决了我的
Main Manifest missing from /tmp/RunTest/src/main/AndroidManifest.xml
,但是我仍然没有任何喜悦。现在我得到:
MyBox:RunTest $ gradle clean
Download http://repo1.maven.org/maven2/net/ealden/gradle/plugins/gradle-androidannotations-plugin/0.3.0/gradle-androidannotations-plugin-0.3.0.pom
Download http://repo1.maven.org/maven2/org/gradle/api/plugins/gradle-android-plugin/1.1.0/gradle-android-plugin-1.1.0.pom
Download http://repo1.maven.org/maven2/net/ealden/gradle/plugins/gradle-androidannotations-plugin/0.3.0/gradle-androidannotations-plugin-0.3.0.jar
Download http://repo1.maven.org/maven2/org/gradle/api/plugins/gradle-android-plugin/1.1.0/gradle-android-plugin-1.1.0.jar
FAILURE: Build failed with an exception.
* What went wrong:
Cannot add task ':processTestResources' as a task with that name already exists.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 9.28 secs
最佳答案
看起来androidannotations插件应用了完整的Java gradle插件,该插件创建了一个processTestResources任务,该任务与我们尝试创建的任务相冲突。
不幸的是,我们使用了相同的名称,但实际上您不想将完整的Java插件应用于使用android插件的项目。
android插件仅适用于基本Java插件(它提供创建Java编译任务的功能,但不创建由完整Java插件创建的默认任务)。
老实说,我们的插件的功能与常规Java截然不同,并且用于扩展Java项目的插件在android项目上尚无法使用(尚未)。
您遇到的第一个错误看起来像是我们遇到的一个问题(但是在重现时遇到了麻烦),其中抛出了一些异常,但是Gradle忽略了它,跳过了对DSL其余部分的评估,并继续尝试构建。由于跳过了sourceSets重映射,因此在 list 中查找错误的位置。
关于android - Gradle构建由于androidannotations插件而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15277466/