【问题标题】:Lombok Requires Annotation ProcessingLombok 需要注解处理
【发布时间】:2016-08-12 07:05:37
【问题描述】:

我正在使用 Android Studio 2.2 Preview 7,Lombok 插件突然开始说: Annotation processing seems to be disabled for the project X,并提供设置链接。

点击通知不会把我带到正确的地方。

有什么办法解决这个问题?

【问题讨论】:

    标签: android-studio lombok intellij-lombok-plugin


    【解决方案1】:

    通过单击通知打开的设置是Per Project 设置,在这种情况下,这些不是您需要的。

    要解决此问题,请转到

    • File->Other Settings->Default Settings
    • 展开Build, Execution, Deployment
    • 展开Compiler
    • Annotation Processors 检查Enable annotation processing
    • 您可能需要重新打开项目才能使设置生效。
    • 享受

    完整参考 - 带有适当设置屏幕的屏幕截图:

    【讨论】:

    • 这仅在我从最近列表中删除项目(启动 AS 时显示的内容)然后重新添加后才有效。
    • 完全确定:关闭项目。从“Welcome to Android Studio”对话框中删除项目(单击 X)。单击右下角的“配置”并启用如上所述的注释处理。再次打开您现有的 Android 项目。在这个答案中描述stackoverflow.com/a/38698186/1666063
    • 更改默认设置的效果为零,除非您正在创建新项目。设置已经写入 .idea/ 并且从欢迎屏幕中删除您的项目对它没有任何作用。 (是的,我试过了。它的效果为零。然后我意识到它甚至没有意义。:) /peace
    • @JaroslavZáruba 不正确。我刚刚从欢迎对话框中删除并阅读。问题已解决。这是最简单的解决方案。
    【解决方案2】:

    对于较新的 gradle 版本,将这些行键入应用程序的 build.gradle 的依赖项块中就足够了:`

    compile "org.projectlombok:lombok:1.16.16"
    annotationProcessor "org.projectlombok:lombok:1.16.16"  
    

    将项目与 gradle 同步即可。

    【讨论】:

    • 这对我来说在 Android STudio 3.0 Canary 4, gradle-4.0-rc-1 上完美运行
    • 谢谢。我用黄油刀和其他方法尝试了很多其他答案。这对我帮助很大
    • 感谢解决了我的问题,Build 可以使用 gradlew 运行,但没有 gradle 本身
    【解决方案3】:

    首先,我认为从欢迎屏幕中删除您的项目不会产生任何影响。想想看,从该屏幕上的“最近的项目”中删除您的项目并不会重新创建它,更改默认设置对现有项目有何影响?

    要在现有项目中启用注释处理,您无需删除任何内容。转到YourAwesomeProject/.idea/compiler.xml 并确保您在以下属性中具有值“true”:/project/annotationProcessing/profile@enabled

    像这样:

    <?xml version="1.0" encoding="UTF-8"?>
    <project version="4">
      <component name="CompilerConfiguration">
        ...
        <annotationProcessing>
          <profile default="true" name="Default" enabled="true"><!-- here -->
            <processorPath useClasspath="true" />
          </profile>
        </annotationProcessing>
      </component>
    </project>
    

    您可能需要文件 -> 使缓存无效/重新启动

    【讨论】:

    • 试过这个并认为它有效,但它没有。也赞成它设置编译器选项的想法,但它似乎将数据存储在缓存中。
    • @EmanuelSeibold 关于缓存的观点很好,更新了答案
    • 感谢您的回答。比批准的答案更简单、更有弹性。
    • how could changing Default settings have any effect on an existing project? 我不知道为什么,但是从欢迎屏幕中删除它确实有效,我刚刚尝试过。
    【解决方案4】:

    对于那些在使用 Android Studio 2.4+ 时遇到相同问题的人,除了 Janis Peisenieks 的回答外,上述任何提示都无法解决。

    打开您的 Intellij IDEA 2017 / Android Studio 2.4+ 并转到 (Windows)

    1. 文件->其他设置->默认设置
    2. 展开构建、执行、部署
    3. 展开Compiler并选择Annotation Processors
    4. 确保您已启用启用注释处理和“从项目类路径获取处理器
    5. 最后但同样重要的是,使用下面的 sn-p 更新您的项目 build.gradle 文件。忽略它已弃用的提示,因为它没有使用(直到现在。请参阅issue)。

      defaultConfig {
          javaCompileOptions {
              annotationProcessorOptions {
                  includeCompileClasspath = true
              }
          }
      }
      

    发现有一种非常简单的方法可以做到这一点,而无需进行上述所有更改!

    如果您将处理器设置在像 lombok 这样的 gradle 中,您将不会只使用 providedtestCompile。您还需要使用 annotationProcessor 将其添加到您的依赖项中。示例:

    dependencies {
        provided "org.projectlombok:lombok:1.16.16"
        annotationProcessor "org.projectlombok:lombok:1.16.16"
    }
    

    感谢 Jack Wharton 提供的黄油刀,我知道他是如何解决它的。

    提示:您可能需要使缓存无效并重新启动以使其适用于一些注释处理器,例如 lombok。

    【讨论】:

    • 赞成你答案的后半部分,摆弄用于新创建项目的设置是没有意义的 IMO :) /peace 并再次感谢关于缓存的观点
    • 第 5 点。为我工作
    • Intellij 2020 中没有File / Other serttings
    【解决方案5】:

    当时可能标记的答案就足够了,但我在使用 android studio 3 和 lombok 1.16.18 时有点挣扎。无论如何,以下对我有用

    app>build.gradle添加关注

    compileOnly 'org.projectlombok:lombok:1.16.18'
    annotationProcessor 'org.projectlombok:lombok:1.16.18'
    

    您可能会开始遇到其他错误,因此如果您在 MyApplication > lombok.config 添加以下行

    lombok.addGeneratedAnnotation = false
    lombok.anyConstructor.suppressConstructorProperties = true
    

    如果您没有lombok.config,请添加它

    以上是lombok的开发者在以下帖子中建议的
    addGeneratedAnnotation
    suppressConstructorProperties

    【讨论】:

      【解决方案6】:

      lombok 网站 (lombok set up for android) 的设置指南说我们应该做两件事

      1、安装lombok插件

      2、添加gradle依赖

      dependencies {
        compileOnly 'org.projectlombok:lombok:1.18.6'
        annotationProcessor 'org.projectlombok:lombok:1.18.6'
      }
      

      但对我来说,插件会导致问题发生。在我禁用插件后,错误消失了,lombok 仍然有效。

      【讨论】:

        【解决方案7】:

        从 Android Studio v3.5(2019 年 8 月)及之前版本开始,没有注释处理器的设置。 然而,在依赖部分的 build.gradle 中定义就足够了:

        dependencies {
        ...
            compileOnly 'org.projectlombok:lombok:1.18.8'
            annotationProcessor 'org.projectlombok:lombok:1.18.8'
        ...
        }
        

        如果 Android Studio 仍然抱怨“Lombok 需要注释处理”,对我来说,是 Lombok 插件重新安装和“缓存无效/重启”解决了这个问题。

        【讨论】:

        • 重新安装 lombok 插件并通过重启使缓存无效
        【解决方案8】:

        AndroidStudio 3.5+ 中执行后续步骤:

        • 转至File -&gt; Other Settings -&gt; Preferences for New Projects... (!)
        • 展开Build, Execution, Deployment
        • 展开Compiler
        • 选择Annotation Processors
        • 检查Enable annotation processing

        如果还是不行就重新安装 Lombok 插件。

        【讨论】:

          【解决方案9】:

          按照设置手册的说明进行操作:

          Gradle 确保您的 android 插件版本 >= 0.4.3 使用 gradle-lombok 插件。如果您不想使用该插件,请添加 Lombok 到您的应用程序的依赖项块(需要 Gradle v2.12 或更新):

          dependencies {    
           compileOnly "org.projectlombok:lombok:1.16.18" 
          }
          

          Android Studio 按照前面的说明(Gradle)。此外 要正确设置您的 gradle 项目,您需要添加 Lombok IntelliJ 插件为 Android Studio 添加 lombok 支持:

          1. 转到文件 > 设置 > 插件
          2. 点击浏览存储库...
          3. 搜索 Lombok 插件
          4. 点击安装插件重启Android Studio

          https://projectlombok.org/setup/android

          【讨论】:

            【解决方案10】:
            1. 安装 Lombok 插件并重启
            2. 添加依赖:https://projectlombok.org/setup/gradle

              compileOnly 'org.projectlombok:lombok:1.18.12' annotationProcessor 'org.projectlombok:lombok:1.18.12'

              testCompileOnly 'org.projectlombok:lombok:1.18.12' testAnnotationProcessor 'org.projectlombok:lombok:1.18.12'

            这对我有用。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2017-10-26
              • 2012-02-10
              • 2015-12-30
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多