我的android项目使用lombok 1.16.0构建正常,但是一旦我将我的依赖项更改为目标1.16.2,我在使用lombok注释时到处都会出现以下错误:
Error:(20, 1) error: package javax.annotation does not exist
Android SDK不包含所有javax包.我想知道的是,如果这是1.16.2中的错误,还是我现在必须添加一个依赖javax.annotation?
注意:这是在带有Lombok插件0.8.8的Android Studio中
我正在尝试在我的项目中使用java 8,为此我添加了jack编译器.
启用插孔后,我开始遇到使用注释处理的库的问题,并在Web上查看我读到需要android studio 2.2和com.android.tools.build:gradle:2.2.0-alpha6来编译从注释生成代码的库.
我下载Android Studio 2.2预览版6并将我的项目转换为它.之后我发现不再支持apt gradle插件,然后我需要将使用apt的每个依赖项更改为使用新的annotationProcessor选项.
例如:
apt "org.projectlombok:lombok:$rootProject.lombokVersion"
Run Code Online (Sandbox Code Playgroud)
至
annotationProcessor "org.projectlombok:lombok:$rootProject.lombokVersion"
Run Code Online (Sandbox Code Playgroud)
现在,如果我使用"make project",项目编译没有问题,但如果我尝试执行它,我的代码应该由注释生成错误.
此外,当我打开项目时,我收到来自lombok插件的警告"注释处理似乎已禁用该项目".当我打开项目设置并转到"构建 - >编译器"时,我找不到注释处理器.
所以,我的问题是:如何在Android Studio 2.2中启用注释处理器?此功能已被禁用?如果是,我如何从注释中生成代码?
--EDIT--我正在制作一个PullRequest来改变用Java8编译的项目,你可以在这里查看PR:https://github.com/jonathanrz/myexpenses-android/pull/57
当我创建一个包含一个或多个字段的新Java类并将@AllArgsConstructor注释从lombok 附加到它时,我收到此消息
Error:(9, 1) error: cannot find symbol class ConstructorProperties
从Gradle Build控制台上.通过使用此配置创建一个新的空Android项目,我能够重现这一点.
类(从未使用或实例化)
@lombok.AllArgsConstructor
public class Model {
int foo;
String bar;
}
Run Code Online (Sandbox Code Playgroud)
的build.gradle:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
provided 'org.projectlombok:lombok:1.14.8'
}
Run Code Online (Sandbox Code Playgroud)
@Getter并且@Setter从lombok不会引起任何问题,即使@NoArgsConstructor没有gradle提到,AllArgsConstructor如果没有字段也是如此.
这是来自Lombok的错误还是这个错误位于屏幕前方?