【问题标题】:enable Annotation Processors option in Android Studio 2.2在 Android Studio 2.2 中启用注释处理器选项
【发布时间】:2021-02-01 04:52:23
【问题描述】:

我正在尝试在我的项目中使用 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 插件的警告“项目的注释处理似乎已禁用”。当我打开项目设置并转到“Build -> Compiler”时,我找不到 Annotation Processors。

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

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

【问题讨论】:

  • Jacques Koorts 的回答很棒。关键是要关闭当前项目,因为Annotation Processors 不会显示在 Gradle 项目中。您需要从根目录访问编译器菜单。

标签: java android annotations android-studio-2.2


【解决方案1】:

关闭项目。在“Welcome to Android Studio”对话框中点击右下角的“Configure”。

那么,

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

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

为我工作。

【讨论】:

  • Android Studio 2.1.2 中不存在“注释处理器”
  • 我也在设置里搜索了注解处理器选项,没找到。我的错误总是单击不是文件夹的“编译器”选项。就在上面还有另一个“编译器”选项,其子元素也包含注释处理器。
  • @appoorv-Khatreja 你找不到它,因为正如 Jacques Koorts 所说,你正在进行一个当前项目。所以关闭你当前的项目。然后在 Android Studio 中打开 Configure/Settings 菜单(在右下角)。然后选择 Build,Execution,Deployment/Compiler 然后 Annocation Processors 然后你可以勾选“Enable annotation processing”。
  • 您也可以在“文件”>“其他设置”>“默认设置...”中打开项目找到它
  • Android Studio 2.3 中没有 Compiler > Annotation Processors 这样的东西。
【解决方案2】:
  1. 关闭所有 AndroidStudio 项目
  2. 单击配置-->设置 看

【讨论】:

    【解决方案3】:

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

    File -> Other Settings -> Default Settings
    

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

    之后不要忘记清理、构建、无效并重新启动。
    干杯!

    【讨论】:

    • 不适合我。我尝试运行 org.AndroidAnnotations,这对 APT 来说很好,但我无法让它与 Android 注释处理器一起工作。处理器根本不启动。
    • 在您的 gradle 文件中,您必须使用 annotationProcessor 更改 apt。例如 apt "org.androidannotations:androidannotations:$AAVersion" -> annotationProcessor "org.androidannotations:androidannotations:$AAVersion"..... stackoverflow.com/questions/42622060/…
    • 这对我不起作用。起初我以为是,但红线又回来了。错误在 Android Studio 启动时消失,或在运行测试后立即消失,但很快又回来了。即使在复制了具有正确设置集的 compiler.xml 文件后,我仍然遇到错误。目前还没有解决办法。
    • @ChadSchultz 您使用的是 Java 还是 Kotlin?对于 Kotlin,您必须将 kapt(kotlin annotation processor) 作为依赖项添加到 gradle
    【解决方案4】:

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

    之后:File > Invalidate Caches / Restart... > Invalidate and Restart

    【讨论】:

    • 这里解决了我的问题。做愚蠢的“从开始屏幕删除”黑客没有奏效!
    【解决方案5】:

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

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

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

    【讨论】:

      【解决方案6】:
      1. 关闭您的项目。
      2. 设置 > 构建、执行、部署 > 编译器 > 注释处理器。选中“启用注释处理”。
      3. 打开您的项目。
      4. 文件 > 使缓存无效/重新启动... > 使缓存无效并重新启动

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

      【讨论】:

        【解决方案7】:

        添加到@Jacques Koorts 和@mtrakal

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

        【讨论】:

          【解决方案8】:

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

          对于 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'
          

          【讨论】:

          • 专门针对 kotlin 的有用答案 (y)
          【解决方案9】:

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

          【讨论】:

            【解决方案10】:

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

            android {
                ...
                defaultConfig {
                    ...
                    javaCompileOptions {
                        annotationProcessorOptions {
                            includeCompileClasspath false
                        }
                    }
                }
            }
            

            【讨论】:

              【解决方案11】:

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

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2017-08-02
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多