Kotlin自定义注解遇到的问题记录

auto-service
  • 使用auto-service
    @AutoService(Processor::class)
     class MyAnnotationProcess : AbstractProcessor(){

      }
引入auto-service
     implementation 'com.google.auto.service:auto-service:1.0-rc7'
     annotationProcessor 'com.google.auto.service:auto-service:1.0-rc7'

在kotlin编写的注解解释器中我们发现我们在类上添加了AutoService,发现并没有起作用,原因是因为我们是kotlin类,故需要将annotationProcessor 替换成 kapt

kotlin 项目需要修改为
     implementation 'com.google.auto.service:auto-service:1.0-rc7'
     annotationProcessor 'com.google.auto.service:auto-service:1.0-rc7'

修改完成之后才会有效

  • 不使用auto-service
在注解解释器项目的src/main目录下创建
resources/META_INF/services/javax.annotation.processing/Processor文件

该文件中的内容为:注解的路径
    com.cb.annoprocess.MyAnnotationProcess

在app中使用使用注解的时候需要注意的是,如果在Kotlin文件中使用的话,我们需要使用kapt来引入注解解释器

代码示例:
https://github.com/mianbaocheng/KotlinAnnoPro.git

你可能感兴趣的:(Kotlin自定义注解遇到的问题记录)