Lombok需要注释处理

问题描述 投票:32回答:7

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

enter image description here

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

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

android-studio lombok intellij-lombok-plugin
7个回答
74
投票

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

要解决此问题,请转到

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

有关完整参考 - 具有适当设置屏幕的屏幕截图:enter image description here


15
投票

使用较新的gradle版本,只需将这些行键入应用程序的build.gradle的依赖项块即可:

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

将项目与gradle同步,它将起作用。


13
投票

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

要在现有项目中启用注释处理,您无需删除任何内容。转到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>

您可能需要File - > Invalidate Caches / Restart


8
投票

对于那些使用Android Studio 2.4+遇到同样问题的人来说,除了Janis Peisenieks的答案之外,通过上述任何提示都无法解决。

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

  1. 文件 - >其他设置 - >默认设置
  2. 展开构建,执行,部署
  3. 展开Compiler并选择Annotation Processors
  4. 确保启用了批注处理和“从项目类路径获取处理器”
  5. 最后但并非最不重要的是使用下面的代码段更新您的项目build.gradle文件。忽略它被弃用的提示,因为它没有使用(直到现在。见issue)。 defaultConfig { javaCompileOptions { annotationProcessorOptions { includeCompileClasspath = true } } }

发现有一个非常简单的方法,没有上面的所有这些改变!

如果您将处理器设置为像lombok一样的gradle,则不会仅使用提供的或testCompile。您需要使用annotationProcessor以及依赖项添加它。例:

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

感谢Jack Wharton的奶油刀,我想知道他是如何解决它的。

提示:您可能需要使缓存无效并重新启动才能使其适用于某些注释处理器(如lombok)。


4
投票

当时可能标记的答案已经足够,但我在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


2
投票

来自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仍然有效。


0
投票

按照设置手册说的:

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. 单击Browse repositories ...
  3. 搜索Lombok插件
  4. 单击Install plugin重启Android Studio

https://projectlombok.org/setup/android

© www.soinside.com 2019 - 2024. All rights reserved.