【发布时间】: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
我正在使用 Android Studio 2.2 Preview 7,Lombok 插件突然开始说:
Annotation processing seems to be disabled for the project X,并提供设置链接。
点击通知不会把我带到正确的地方。
有什么办法解决这个问题?
【问题讨论】:
标签: android-studio lombok intellij-lombok-plugin
【讨论】:
对于较新的 gradle 版本,将这些行键入应用程序的 build.gradle 的依赖项块中就足够了:`
compile "org.projectlombok:lombok:1.16.16"
annotationProcessor "org.projectlombok:lombok:1.16.16"
将项目与 gradle 同步即可。
【讨论】:
首先,我认为从欢迎屏幕中删除您的项目不会产生任何影响。想想看,从该屏幕上的“最近的项目”中删除您的项目并不会重新创建它,更改默认设置对现有项目有何影响?
要在现有项目中启用注释处理,您无需删除任何内容。转到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>
您可能需要文件 -> 使缓存无效/重新启动
【讨论】:
how could changing Default settings have any effect on an existing project? 我不知道为什么,但是从欢迎屏幕中删除它确实有效,我刚刚尝试过。
对于那些在使用 Android Studio 2.4+ 时遇到相同问题的人,除了 Janis Peisenieks 的回答外,上述任何提示都无法解决。
打开您的 Intellij IDEA 2017 / Android Studio 2.4+ 并转到 (Windows)
最后但同样重要的是,使用下面的 sn-p 更新您的项目 build.gradle 文件。忽略它已弃用的提示,因为它没有使用(直到现在。请参阅issue)。
defaultConfig {
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath = true
}
}
}
发现有一种非常简单的方法可以做到这一点,而无需进行上述所有更改!
如果您将处理器设置在像 lombok 这样的 gradle 中,您将不会只使用 provided 或 testCompile。您还需要使用 annotationProcessor 将其添加到您的依赖项中。示例:
dependencies {
provided "org.projectlombok:lombok:1.16.16"
annotationProcessor "org.projectlombok:lombok:1.16.16"
}
感谢 Jack Wharton 提供的黄油刀,我知道他是如何解决它的。
提示:您可能需要使缓存无效并重新启动以使其适用于一些注释处理器,例如 lombok。
【讨论】:
File / Other serttings
当时可能标记的答案就足够了,但我在使用 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
【讨论】:
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 仍然有效。
【讨论】:
从 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 插件重新安装和“缓存无效/重启”解决了这个问题。
【讨论】:
在 AndroidStudio 3.5+ 中执行后续步骤:
File -> Other Settings -> Preferences for New Projects... (!)
Build, Execution, Deployment
Compiler
Annotation Processors
Enable annotation processing
如果还是不行就重新安装 Lombok 插件。
【讨论】:
按照设置手册的说明进行操作:
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 支持:
- 转到文件 > 设置 > 插件
- 点击浏览存储库...
- 搜索 Lombok 插件
- 点击安装插件重启Android Studio
【讨论】:
添加依赖: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'
这对我有用。
【讨论】: