最近把一个用eclipse构建的项目,加上了Gradle脚本,用它来编译。虽然最后编译是显示BUILD SUCCESSFUL,但是在编译过程中,却打印出一大堆栈信息,似乎是在编译我自定义的注解时出现的异常。
打印的栈信息前面部分如下:
:assemble :lint Failed converting ECJ parse tree to Lombok for file E:\code\git\androidkit\andro idkit\src\com\lurencun\cfuture09\androidkit\uibind\annotation\AndroidView.java java.lang.ClassCastException: lombok.ast.Annotation cannot be cast to lombok.ast .Expression at lombok.ast.ecj.EcjTreeConverter$2.visitAnnotationMethodDeclaration(Ec jTreeConverter.java:1259) at lombok.ast.ecj.EcjTreeVisitor.visitEcjNode(EcjTreeVisitor.java:332) at lombok.ast.ecj.EcjTreeConverter.visit(EcjTreeConverter.java:295) at lombok.ast.ecj.EcjTreeConverter.toTree(EcjTreeConverter.java:236) at lombok.ast.ecj.EcjTreeConverter.fillList(EcjTreeConverter.java:282) at lombok.ast.ecj.EcjTreeConverter.fillList(EcjTreeConverter.java:252) at lombok.ast.ecj.EcjTreeConverter.access$100(EcjTreeConverter.java:141) at lombok.ast.ecj.EcjTreeConverter$2.createNormalTypeBody(EcjTreeConvert er.java:562) at lombok.ast.ecj.EcjTreeConverter$2.visitTypeDeclaration(EcjTreeConvert er.java:512) at lombok.ast.ecj.EcjTreeVisitor.visitEcjNode(EcjTreeVisitor.java:48) at lombok.ast.ecj.EcjTreeConverter.visit(EcjTreeConverter.java:295) at lombok.ast.ecj.EcjTreeConverter.toTree(EcjTreeConverter.java:236) at lombok.ast.ecj.EcjTreeConverter.fillList(EcjTreeConverter.java:282) at lombok.ast.ecj.EcjTreeConverter.fillList(EcjTreeConverter.java:252) at lombok.ast.ecj.EcjTreeConverter.access$100(EcjTreeConverter.java:141) at lombok.ast.ecj.EcjTreeConverter$2.visitCompilationUnitDeclaration(Ecj TreeConverter.java:440) at lombok.ast.ecj.EcjTreeVisitor.visitEcjNode(EcjTreeVisitor.java:264) at lombok.ast.ecj.EcjTreeConverter.visit(EcjTreeConverter.java:295) at com.android.tools.lint.EcjParser.parseJava(EcjParser.java:98) at com.android.tools.lint.client.api.JavaVisitor.visitFile(JavaVisitor.j ava:197) at com.android.tools.lint.client.api.LintDriver.checkJava(LintDriver.jav a:1593)
目前仍未知是什么原因。我使用的是gradle 1.10的版本,在官方文档中查找annotation这个关键词,未发现相关的内容。