【发布时间】:2014-11-07 16:11:54
【问题描述】:
我正在尝试将注释处理器添加到我的 Android 项目,但我收到一条错误消息,提示找不到 AbstractProcessor。与此同时,我创建了一个单独的 java 项目,但我宁愿将所有内容都保存在一个 Android 项目中。在我的项目中包含AbstractProcessor 的最佳方式是什么?我正在使用 AndroidStudio 和 Gradle。
更新:
我将 javax.annotation、javax.lang.model 和 javax.tools 重新打包到我项目的命名空间 (as per these instructions) 下。我包含了一个资源/META-INF/services/javax.annotation.processing.Processor,其中包含我的AbstractProcessor 子类的完整类名,并且一切都编译得很好。但是,处理器永远不会运行。
编辑: 简而言之,我有一个为方法提供注释的 Android 库项目。如果注释使用不正确,我想提供一个会导致编译时错误的处理器。如果我尝试将处理器放在 Android 库项目中,Gradle 将不会构建它,因为找不到 javax.* 类。我可以让它工作的唯一方法是在库项目中创建一个 java 模块,并将处理器放在那里。但是,这意味着我必须在要使用此注释的任何项目中拥有 2 个依赖项;一个获取注解,一个获取处理器。
【问题讨论】:
-
究竟是哪个注释处理器?
-
我的
AbstractProcessor子类。
标签: java android annotations android-studio