【问题标题】:Error: package javax.annotation does not exist after upgrade to lombok 1.16.2错误:升级到 lombok 1.16.2 后包 javax.annotation 不存在
【发布时间】:2015-04-12 11:43:03
【问题描述】:

我的 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 android lombok intellij-lombok-plugin


    【解决方案1】:

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

    lombok.addGeneratedAnnotation = false
    

    请参阅configuration documentation 了解更多信息。

    披露:我是 Lombok 开发人员。

    【讨论】:

    • Lombok 配置目前不存在或无法与 Android Studio 一起使用,对吗?
    • @RoelSpilker 你是救生员。非常感谢 Lombok,它是每个优秀的开发人员工具包中的必备工具! ;-)
    • @serkan lombok.config 似乎与 Android Studio 配合得很好
    • @serkan 你可以在android studio中创建lombok.config文件,然后放这一行。
    • lombok.config 文件不存在,创建它并不能解决问题。
    【解决方案2】:

    如果您在使用 gradle 的 Android Studio 中遇到同样的问题 - 将以下行添加到 build.gradle:

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

    【讨论】:

    • 为什么是10.0-b28 而不是3.1.13.2-b06? 10.x 似乎比其他版本晚了 3 年。
    • 使用 GlassFish 依赖项似乎不对。我更喜欢compile 'javax.annotation:jsr250-api:1.0this answer。不过,jsr250-api 已经相当老了(2007 年)。注意:我使用的是 Dagger 2,而不是 Lombok。
    【解决方案3】:

    今天android开发的正确答案是使用大于2.1的dagger版本(因为@tomrozb提到的fix是2.1集成的)

    【讨论】:

    • 这是龙目岛问题,不是匕首问题
    猜你喜欢
    • 2021-07-03
    • 2022-11-07
    • 2022-10-05
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    相关资源
    最近更新 更多