问题标签 [annotation-processor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
840 浏览

android - 无法在 Android Studio 2.3 中使用注释处理器

我最近将我的 Android Studio 版本更新为 2.3。一切正常,但除了我在build.gradle.

我打算做什么:

我想在我的项目中使用基于注释的 Permission Dispatcher 库,但我无法成功构建我的项目,因为 gradle 在构建错误后抛出

我的代码:

我的 build.gradle

我尝试了什么:

我尝试在 Android Studio 首选项中启用注释处理器,如下所示在 Android Studio 2.2 中启用注释处理器选项中找到的建议

在此处输入图像描述

任何形式的线索或建议都会非常有帮助。由于找不到任何解决方法,我已经被这个问题困扰了超过 2 天。提前致谢。

0 投票
3 回答
1349 浏览

android - 无法使用 @IntDef 注释导入 AAR 库

我的库中有以下代码:

在图书馆的毕业典礼上,我有

我将其部署到 JFrog BinTray,然后尝试在我的应用程序中使用它。我必须从库依赖项中排除 appcompat-v7 和 support-annotations,但我构建仍然失败:

错误:无法解决:annotationProcessor

现在我被卡住了,尝试了很多东西,但没有任何帮助。我无法用这个库构建主项目。我是否需要实现任何自定义 AnnotationProcessor 才能使用@IntDef?

0 投票
9 回答
59374 浏览

android - 设置显式注释处理器

我正在尝试将 Maven 存储库添加到我的 Android Studio 项目中。当我进行 Gradle 项目同步时,一切都很好。但是,每当我尝试构建我的 apk 时,都会收到此错误:

该链接包含在错误 404s 中( https://developer.android.com/r/tools/annotation-processor-error-message.html ),所以它没有帮助。

我在 android studio 设置中启用了注释处理,并添加includeCompileClasspath = true到我的注释处理器选项中。我也尝试将classindex,classindex-3.3和添加classindex-3.3.jar到处理器 FQ 名称,但这也无济于事。

这些是我在依赖项下添加到默认 build.gradle 的行:

最初我只是添加了“清晰”项,因为那是我关心的一项,但我添加了“classindex”条目,希望它能修复它。删除“清晰度”并保留“classindex”给了我完全相同的错误。

我对 gradle/maven 不太熟悉,所以任何帮助都将不胜感激。

0 投票
3 回答
38595 浏览

java - 如何在 Eclipse 中配置 Java 注释处理器?

我已经通过使用 Java 8 编译的命令提示符成功运行了 CLASS 级别保留注释的注释处理器。

但是,当我尝试在eclipse中配置注释处理器并尝试使用"-proc:only"option运行它时,它没有生效。

我已将包含自定义注释处理器类文件的 Jar 文件包含到Project Properties -> Annotation Processing -> Factory Path. 我还在 中提供了-proc:only选项Project Properties -> Annotation Processing -> Processor Options,当执行包含我的注释的类时,注释处理器仍然没有被调用。

请帮助我确定通过 Eclipse 运行注释处理器所需的设置或错误或附加步骤。

0 投票
1 回答
892 浏览

java - tomcat 未调用自定义注释处理器

tomcat 未调用自定义注释处理器。以下是我正在使用的注释处理器代码:

这存储了具有自定义注释的所有方法的方法名称。这是注释类的样子:

我正在尝试访问 tomcat 应用程序中的列表,如下所示:

即使该方法具有注释,该列表也打印为空。我已经在 maven 编译器插件中指定了注释,并在 META-INF/services/javax.annotation.processing.Processor 中指定了它。有人能告诉我注释处理器没有被调用的可能原因是什么吗?

0 投票
4 回答
3432 浏览

kotlin - 使用 kapt 和 gradle 时无法调试注释处理器

我正在构建一个注释处理器,我最近使用 kotlin-kapt 插件从使用默认的 annotationProcessor 类型切换到 kapt。

我正在使用命令调试我的处理器

(此处的完整说明:https ://stackoverflow.com/a/42488641/502463 )

然后运行远程调试配置。当我使用 annotationProcessor 时,我可以打断点,并且调试得很好。使用 kapt,我的处理器运行,但我无法调试它。没有触发断点。

我的 kotlin 版本是 1.1.2-3

0 投票
1 回答
2821 浏览

android - 带有 Android Studio 3.0 Preview (Canary 2) 的 Dagger 2 使用 annotationProcessor 而不是 android-apt

好的,长话短说 - 我决定Android Studio 3.0 Preview (Canary 2)试一试,但我无法Dagger 2使用annotationProcessor代替android-apt.

我收到的错误消息很容易消化:

我已经阅读了文档(我猜那里没什么特别的):https ://developer.android.com/studio/preview/features/new-android-plugin-migration.html#annotationProcessor_config

并将build.gradle文件更改为:

在哪里daggerVersion = '2.11'

此外,我确保在 Android Studio 中检查了适当的选项(默认情况下未检查):

不幸的是,它没有帮助。

摇篮:

Gradle 的 Android 插件:

我如何使它与annotationProcessor而不是一起工作android-apt

编辑#1

我已经添加了这些“应该是额外的”依赖项“以防万一”

现在我得到一个关于范围冲突的错误......哦

我确实将 Dagger 从升级2.6.12.11,所以现在我在发行说明中寻找一些“重大变化”:https ://github.com/google/dagger/releases

编辑#2

好消息是,第一个“重大变化”是在2.9我的猜测中引入的,这是由于“新验证”。坏消息是,这个问题很可能已经存在很长时间了。https://github.com/google/dagger/releases/tag/dagger-2.9

审查(Sub)Components和的结构Scoped Dependencies

编辑#3

目前,这个问题与这个问题有关:https ://github.com/google/dagger/issues/107

考虑以下示例:

这不再是可能的Dagger 2.9+Component必须使用与 s 不同Scope的值Subcomponent。像这样:

0 投票
1 回答
12659 浏览

intellij-idea - 默认启用注释处理器

如何将 IntelliJ IDEA 配置为默认启用注释处理器?

目前,我必须为每个导入的项目手动启用它。

启用注释处理器

0 投票
1 回答
237 浏览

java - 实例化一个带有一些注解的类

我想通过在注释处理器中获取注释来从存在特定注释的类中获取有关字段的信息。

我可以从注释中检索完全限定的类名,但不能实例化它,aClassNotFoundException被抛出,尽管类在那里。

如何检查类是否不在类路径中或注释处理器包含哪个类路径?

0 投票
1 回答
2242 浏览

java - 从字段元素获取包名称和参数化类型 - 注释处理器

我怎样才能从注释处理器中获取package name,generic type和?Parametrized typetypefield element

说,如果Element.asType返回java.util.List<String>,我想得到

  • 包裹名字java.util
  • 泛型类型List<E>或原始类型List(最好是原始类型)
  • 实际类型String

有什么方法element utilstype utils