Lombok需要注释处理

Jan*_*eks 39 lombok android-studio intellij-lombok-plugin

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

在此输入图像描述

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

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

Jan*_*eks 78

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

要解决此问题,请转到

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

有关完整参考 - 具有适当设置的屏幕截图: 在此输入图像描述

  • 这仅在我从最近列表中删除项目后(当您启动AS时显示的内容)然后重新添加它. (21认同)
  • 完全确定:关闭项目.从"欢迎使用Android Studio"对话框中删除项目(单击X).单击右下角的"配置",然后启用如上所述的注释处理.再次打开现有的Android项目.在这个答案http://stackoverflow.com/a/38698186/1666063中描述 (15认同)
  • 除非创建新项目,否则更改默认设置的效果为零。设置已经用.idea /编写,并且从欢迎屏幕中删除项目对此没有任何作用。(是的,我尝试过。它的作用为零。然后我意识到它甚至没有任何意义。:) / peace (2认同)

And*_*czl 16

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

compile "org.projectlombok:lombok:1.16.16"
annotationProcessor "org.projectlombok:lombok:1.16.16"  
Run Code Online (Sandbox Code Playgroud)

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


Jar*_*uba 14

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

要在现有项目中启用注释处理,您无需删除任何内容.去YourAwesomeProject/.idea/compiler.xml,并确保你有值" 在以下属性": /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>
Run Code Online (Sandbox Code Playgroud)

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


Ema*_*l S 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文件.忽略它被弃用的提示,因为它没有使用(直到现在.请参阅问题).

    defaultConfig {
        javaCompileOptions {
            annotationProcessorOptions {
                includeCompileClasspath = true
            }
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

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

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

dependencies {
    provided "org.projectlombok:lombok:1.16.16"
    annotationProcessor "org.projectlombok:lombok:1.16.16"
}
Run Code Online (Sandbox Code Playgroud)

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

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


Mub*_*har 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'
Run Code Online (Sandbox Code Playgroud)

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

lombok.addGeneratedAnnotation = false
lombok.anyConstructor.suppressConstructorProperties = true
Run Code Online (Sandbox Code Playgroud)

如果您还没有lombok.config添加它

以上是由龙目岛的开发者在以下职位建议
addGeneratedAnnotation
suppressConstructorProperties


归档时间:

查看次数:

23287 次

最近记录:

5 年,11 月 前