android - Gradle构建由于androidannotations插件而失败

标签 android gradle android-annotations

我将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/

相关文章:

android - 如何在 Android 中删除 nullable 的警告?

java - 关于 LocationManager.requestLocationUpdates 方法的最小距离的说明,最小距离参数

java - 如何将字符串拆分为多个部分

android - Android 中的 Activity 和简单表单之间的根本区别是什么?

java - jitpack 将构建工件下载到哪里?

android - 错误 :(3) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'

java - 带 Android 注释的自定义标题

android - setContentView(R.Layout.main) vs startActivity(intent),哪个更常见?

android - Unresolved reference : DrawImage

ListActivity 中的 AndroidAnnotations 和上下文菜单