在 Android Studio 2.2 中启用注释处理器选项
enable Annotation Processors option in Android Studio 2.2
我正在尝试在我的项目中使用 java 8,为此我添加了 jack 编译器。
启用 jack 后,我开始遇到使用注释处理的库的问题,并在网上查看我读到我需要 android studio 2.2 和 com.android.tools.build:gradle:2.2。 0-alpha6 用于编译从注释生成代码的库。
我下载 Android Studio 2.2 preview 6 并将我的项目转换为它。之后我发现不再支持 apt gradle 插件,然后我需要更改每个使用 apt 的依赖项以使用新的 annotationProcessor 选项。
例如:
apt "org.projectlombok:lombok:$rootProject.lombokVersion"
至
annotationProcessor "org.projectlombok:lombok:$rootProject.lombokVersion"
现在,如果我使用 "make project",项目编译没有问题,但如果我尝试执行它,我会发现应该由注释生成的代码有错误。
另外,当我打开项目时,我收到来自 lombok 插件的警告 "Annotation processing seems to be disabled for the project"。当我打开项目设置并转到 "Build -> Compiler" 时,我找不到注释处理器。
所以,我的问题是:如何在 Android Studio 2.2 中启用注释处理器?这个功能被禁用了?如果是,我如何从注释生成代码?
--编辑--
我正在制作一个 PullRequest 来更改项目以使用 Java8 进行编译,您可以在此处查看 PR:https://github.com/jonathanrz/myexpenses-android/pull/57
关闭项目。在 "Welcome to Android Studio" 对话框中单击右下角的 "Configure"。
然后,
Settings > Build, Execution, Deployment > Compiler > Annotation Processors. Tick 'Enable annotation processing'.
如果不行。从 "Welcome to Android Studio" 对话框中删除项目并从新打开。
对我有用。
之后做:File > Invalidate Caches / Restart... > Invalidate and Restart
添加到@Jacques Koorts 和@mtrakal
如果您无法进入 "Welcome to Android Studio" 屏幕。尝试 File -> Close Project
而不是单击 X
图标。然后你会看到 "Welcome to Android Studio" 屏幕,你会在右下角看到齿轮。之后遵循接受的答案,可能还有缓存失效。
- 关闭所有 Android Studio 项目
见
点击配置-->设置
看
- 关闭您的项目。
- 设置 > 构建、执行、部署 > 编译器 > 注释处理器。检查 'Enable annotation processing'。
- 打开您的项目。
- 文件 > 使缓存无效/重新启动... > 无效并重新启动
等待过程完全,就万事大吉了。
在 .idea 文件夹中打开 compiler.xml。我有以下内容:
<annotationProcessing>
<profile default="true" name="Default" enabled="false">
<processorPath useClasspath="true" />
</profile>
</annotationProcessing>
我只是将 enable 更改为 true 并重新打开项目。
您可以在 Android Studio 2.3:
中启用注释处理器而无需关闭您的项目
File -> Other Settings -> Default Settings
Build, Execution, Deployment -> Compiler -> Annotation Processors ->
Enable annotation processing.
之后不要忘记清理、构建、失效和重新启动。
干杯!
愚蠢但对我有用,在我升级到 1.4.1 的情况下尝试更改库版本
如果项目没有集成到版本控制中,有时annotate选项会变灰。所以转到 VCS->Enable version control integration 然后瞧,你会看到注释选项,并且可以在编辑器的行号旁边看到作者姓名。
这个答案是给以后遇到这个问题的人的
对于 Kotlin
添加kapt插件
apply plugin: 'kotlin-kapt'
implementation 'com.google.dagger:dagger:2.21'
kapt 'com.google.dagger:dagger-compiler:2.21'
对于Java
implementation 'com.google.dagger:dagger:2.21'
annotationProcessor 'com.google.dagger:dagger-compiler:2.21'
我个人会强制将其添加到您的 build.gradle(Module:app) 文件
android {
...
defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath false
}
}
}
}
我正在尝试在我的项目中使用 java 8,为此我添加了 jack 编译器。
启用 jack 后,我开始遇到使用注释处理的库的问题,并在网上查看我读到我需要 android studio 2.2 和 com.android.tools.build:gradle:2.2。 0-alpha6 用于编译从注释生成代码的库。
我下载 Android Studio 2.2 preview 6 并将我的项目转换为它。之后我发现不再支持 apt gradle 插件,然后我需要更改每个使用 apt 的依赖项以使用新的 annotationProcessor 选项。
例如:
apt "org.projectlombok:lombok:$rootProject.lombokVersion"
至
annotationProcessor "org.projectlombok:lombok:$rootProject.lombokVersion"
现在,如果我使用 "make project",项目编译没有问题,但如果我尝试执行它,我会发现应该由注释生成的代码有错误。
另外,当我打开项目时,我收到来自 lombok 插件的警告 "Annotation processing seems to be disabled for the project"。当我打开项目设置并转到 "Build -> Compiler" 时,我找不到注释处理器。
所以,我的问题是:如何在 Android Studio 2.2 中启用注释处理器?这个功能被禁用了?如果是,我如何从注释生成代码?
--编辑-- 我正在制作一个 PullRequest 来更改项目以使用 Java8 进行编译,您可以在此处查看 PR:https://github.com/jonathanrz/myexpenses-android/pull/57
关闭项目。在 "Welcome to Android Studio" 对话框中单击右下角的 "Configure"。
然后,
Settings > Build, Execution, Deployment > Compiler > Annotation Processors. Tick 'Enable annotation processing'.
如果不行。从 "Welcome to Android Studio" 对话框中删除项目并从新打开。
对我有用。
之后做:File > Invalidate Caches / Restart... > Invalidate and Restart
添加到@Jacques Koorts 和@mtrakal
如果您无法进入 "Welcome to Android Studio" 屏幕。尝试 File -> Close Project
而不是单击 X
图标。然后你会看到 "Welcome to Android Studio" 屏幕,你会在右下角看到齿轮。之后遵循接受的答案,可能还有缓存失效。
- 关闭所有 Android Studio 项目
见
点击配置-->设置 看
- 关闭您的项目。
- 设置 > 构建、执行、部署 > 编译器 > 注释处理器。检查 'Enable annotation processing'。
- 打开您的项目。
- 文件 > 使缓存无效/重新启动... > 无效并重新启动
等待过程完全,就万事大吉了。
在 .idea 文件夹中打开 compiler.xml。我有以下内容:
<annotationProcessing>
<profile default="true" name="Default" enabled="false">
<processorPath useClasspath="true" />
</profile>
</annotationProcessing>
我只是将 enable 更改为 true 并重新打开项目。
您可以在 Android Studio 2.3:
中启用注释处理器而无需关闭您的项目File -> Other Settings -> Default Settings
Build, Execution, Deployment -> Compiler -> Annotation Processors ->
Enable annotation processing.
干杯!
愚蠢但对我有用,在我升级到 1.4.1 的情况下尝试更改库版本
如果项目没有集成到版本控制中,有时annotate选项会变灰。所以转到 VCS->Enable version control integration 然后瞧,你会看到注释选项,并且可以在编辑器的行号旁边看到作者姓名。
这个答案是给以后遇到这个问题的人的
对于 Kotlin
添加kapt插件
apply plugin: 'kotlin-kapt'
implementation 'com.google.dagger:dagger:2.21'
kapt 'com.google.dagger:dagger-compiler:2.21'
对于Java
implementation 'com.google.dagger:dagger:2.21'
annotationProcessor 'com.google.dagger:dagger-compiler:2.21'
我个人会强制将其添加到您的 build.gradle(Module:app) 文件
android {
...
defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath false
}
}
}
}