错误:升级到lombok 1.16.2后,无法找到javax.annotation包。

58

我的安卓项目使用 lombok 1.16.0 版本可以成功构建,但是一旦我将依赖项更改为目标版本 1.16.2,那么我在使用 lombok 注解的任何地方都会出现以下错误:

Error:(20, 1) error: package javax.annotation does not exist

安卓 SDK 并没有包含所有的 javax 包。我想知道的是这是 1.16.2 中的一个 bug 还是我现在必须添加一个 javax.annotation 的依赖项?

注意: 这是在 Lombok 插件 0.8.8 中使用 Android Studio。

3个回答

98

您可以通过在项目顶级目录之一的lombok.config文件中添加以下行来禁用生成javax.annotation.Generated

# Generate `@Generated` for lombok-generated code.
lombok.addLombokGeneratedAnnotation = false
lombok.addGeneratedAnnotation = false

查看配置文档以获取更多信息。

声明:我是Lombok开发人员。


2
Lombok配置目前在Android Studio中不存在或无法使用,对吗? - serkanozel
@RoelSpilker,你是救星啊,谢谢你提供Lombok,它是每个优秀开发人员工具包中必不可少的!;-) - stack man
@serkan,lombok.config 在 Android Studio 中运行良好。 - Espen Riskedal
2
@serkan,您可以在Android Studio中创建lombok.config文件,然后添加以下代码行。 - Rahul
1
lombok.config文件不存在,创建它也无法解决问题。 - Chandler

26

如果您在使用gradle时在Android Studio中遇到相同的问题,请在build.gradle中添加以下行:

provided 'org.glassfish:javax.annotation:10.0-b28'

为什么选择10.0-b28而不是3.1.13.2-b0610.x似乎比其他版本早了3年。 - Dave Jensen
9
使用GlassFish依赖似乎不太合适。根据这个答案,我更喜欢compile 'javax.annotation:jsr250-api:1.0'。尽管jsr250-api比较旧(2007年发布),请注意:我正在使用Dagger 2,而非Lombok。 - anon

-2

如今进行Android开发的正确答案是使用版本大于2.1的Dagger(因为@tomrozb提到的修复已经集成在2.1中)。


这是一个lombok问题,而不是dagger问题。 - Zoe stands with Ukraine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接