本文主要叙述一个在Android工程中使用APT遇到的一个问题,困扰我整整一天😭😭😭,幸好在好心人的帮助下解决了,总体上解决很简单。
1 问题
最近在研究ARouter,发现其运用了很多技术,其中主要的技术之一是APT,即自定义注解。因此我也想自己运用此技术来实现一个自定义注解,以便在android工程中使用。
那么问题来了,我创建了一个子模块,在其中进行实现注解以及注解处理器,但在自定义注解处理器时,即使用AbstractProcessor时,居然用不了这个类。
2 探索
刚开始以为要引入各种库比如:
implementation 'com.squareup:javapoet:1.13.0' // 如果需要生成代码
implementation 'com.google.auto.service:auto-service:1.0' // 用于注册处理器
implementation 'javax.annotation:javax.annotation-api:1.3.2' // 添加必要的注解支持
但好像跟这个没关系,AbstractProcessor是jdk中自带的。
我又去看External Libraries中jdk,确实有这个东西,当时给整懵了:
3 解决方案
解决方案很简单,就是创建java/kotlin库就行了,就可以用了!