java – 未找到Android Studio Annotation AbstractProcessor
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 未找到Android Studio Annotation AbstractProcessor,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2082字,纯文字阅读大概需要3分钟。
内容图文
![java – 未找到Android Studio Annotation AbstractProcessor](/upload/InfoBanner/zyjiaocheng/808/68740dd34d304ef394df1db180f2d2a8.jpg)
我正在尝试将注释处理器添加到我的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个依赖项;一个得到注释,一个得到处理器.
解决方法:
好吧,我认为这里存在一些巨大的误解.首先,您不必将任何内容从javax.*打包到您的应用程序中.注释处理器在编译时运行,并在该阶段完成其所有工作.之后,它可以生成一些文件或配置项目等,这些文件将打包到应用程序中.注释处理器(及其javax.*依赖项)将不会,因为应用程序在运行时不需要处理器.在构建项目时,只有开发人员需要它.
基于蚂蚁的建筑也被弃用了.你应该使用Android gradle(官方)或maven(非官方)插件.
您可以要求处理器在编译时仍然需要依赖项.这是事实,但javax.*类是由构建项目的编译器提供的.在命令行构建和基于IntelliJ的IDE的情况下,JDK APT提供它,在Eclipse的情况下,Eclipse JDT APT插件提供类.
如果要将注释处理器添加到Android gradle项目,请查看我们在AndroidAnnotations中的example.您应该注意使用android-apt插件,它正确地添加了编译时依赖项(处理器),并且还设置了源路径,因此IntellJ可以在没有手动配置的情况下选择它们.
对编辑的反思:
不幸的是,您应该将处理器移动到单独的项目中.这是它可以工作的唯一方式,顺便说一下它是注释处理器的自然方式.例如,dagger和AndroidAnnotations也有此设置(但原因略有不同).
是的,这意味着你必须添加两个依赖项,但你必须处理它.或者,您可以将库添加为处理器所需的dep.在这种情况下,用户只需要将处理器添加为依赖项,因为lib也将作为传递dep添加.但这很安静,因为lib是这里的主要部分,处理器只是验证其正确用法的工具(如果我理解你的编辑好).
内容总结
以上是互联网集市为您收集整理的java – 未找到Android Studio Annotation AbstractProcessor全部内容,希望文章能够帮你解决java – 未找到Android Studio Annotation AbstractProcessor所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。