46

我正在尝试在我的项目中使用 java 8,为此我添加了 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 插件的警告“项目的注释处理似乎已禁用”。当我打开项目设置并转到“构建 - >编译器”时,我找不到注释处理器。

所以,我的问题是:如何在 Android Studio 2.2 中启用注释处理器?这个功能被禁用了?如果是,我如何从注释中生成代码?

--EDIT-- 我正在制作一个 PullRequest 来更改项目以使用 Java8 编译,您可以在此处查看 PR:https ://github.com/jonathanrz/myexpenses-android/pull/57

4

11 回答 11

102

关闭项目。在“欢迎使用 Android Studio”对话框中,单击右下角的“配置”。

然后,

设置 > 构建、执行、部署 > 编译器 > 注释处理器。勾选“启用注释处理”。

如果这不起作用。从“Welcome to Android Studio”对话框中删除项目并从新打开。

为我工作。

于 2016-08-01T11:52:58.553 回答
53
  1. 关闭所有 AndroidStudio 项目
  2. 在此处输入图像描述

  3. 点击配置-->设置查看 在此处输入图像描述

于 2017-01-12T05:51:56.540 回答
33

您可以在Android Studio 2.3中启用注释处理器而无需关闭您的项目:

File -> Other Settings -> Default Settings

在此处输入图像描述

Build, Execution, Deployment -> Compiler -> Annotation Processors -> 
Enable annotation processing.

在此处输入图像描述 之后不要忘记清理、构建、无效和重新启动。
干杯!

于 2017-05-09T06:28:39.677 回答
23

https://stackoverflow.com/a/38698186/4024146

然后做:File > Invalidate Caches / Restart... > Invalidate and Restart

于 2016-10-23T03:54:03.063 回答
7

打开 .idea 文件夹中的 compiler.xml。我有以下内容:

<annotationProcessing>
  <profile default="true" name="Default" enabled="false">
    <processorPath useClasspath="true" />
  </profile>
</annotationProcessing>

我只是将启用更改为 true 并重新打开项目。

于 2017-05-01T14:27:00.843 回答
4
  1. 关闭您的项目。
  2. 设置 > 构建、执行、部署 > 编译器 > 注释处理器。选中“启用注释处理”。
  3. 打开你的项目。
  4. 文件 > 使缓存无效/重新启动... > 使缓存无效并重新启动

完全等待该过程,然后一切都会好起来的。

于 2017-04-18T19:39:03.520 回答
1

添加到@Jacques Koorts 和@mtrakal

如果您无法进入“欢迎使用 Android Studio”屏幕。尝试File -> Close Project而不是单击X图标。然后你会看到“Welcome to Android Studio”屏幕,你会在右下角看到齿轮。之后遵循接受的答案,可能是缓存失效。

于 2017-01-08T18:58:52.543 回答
1

这个答案给那些将来面临这个问题的人

对于科特林

添加 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'
于 2019-03-01T12:17:40.900 回答
0

就个人而言,我将通过将其添加到您的 build.gradle(Module:app) 文件中来强制执行

android {
    ...
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                includeCompileClasspath false
            }
        }
    }
}
于 2021-01-31T20:52:23.450 回答
0

被吓到但对我有用,在我升级到 1.4.1 的情况下尝试更改库版本

于 2017-08-13T18:24:24.323 回答
-1

如果项目没有集成到版本控制中,有时注释选项会灰显。所以转到 VCS->Enable version control integration 然后瞧,您将看到 annotate 选项,并且可以在编辑器的行号旁边看到作者姓名。

于 2017-12-12T15:31:27.313 回答