Android Apt失效:找不到Apt生成的对应类

Android Apt失效:找不到Apt生成的对应类


参考自

  1. Android Gradle由4.x升级至5.0导致Apt项目失效
  2. 高级开发必须理解的Java中SPI机制 - 简书
  3. Upgrading your build from Gradle 4.x to 5.0

Android Gradle由4.x升级至5.0导致Apt项目失效可以得到一种解决方法。而且的确能解决,但是很明显,这种方法只是治标不治本的,所以我这里就不重复写出来了,感兴趣的同学可以直接点击链接看看。

但是这篇文章提供给了我两样东西:java中的SPI机制gradle的升级文档。根据这两个信息找到了高级开发必须理解的Java中SPI机制 - 简书
Upgrading your build from Gradle 4.x to 5.0,最后解决了问题。

文档中有描述:

在这里插入图片描述
翻译过来就是,原来的4.5之前的注解处理器是可以通过compile直接使用,但是,如果你从4.5版本升级到5.1以及以上版本后,这样的方式就不能再次使用了,这个时候必须使用annotationProcessor进行引入。

另外,在这里还遇到了一个很有意思的问题(其实也是我脑抽),通过这样的方式也可以正常使用apt,但是这个包中其实仅仅包含了注解处理器,并没有包含对应的注解类,但是却能获取到对应的注解类。即下面两个方式,实现的效果一致!
在这里插入图片描述在这里插入图片描述

原因也很简单,在auto-service有对于annotation的依赖,所以在依赖的时候会直接导入对应的注解包。框架使人轻松,但是也使人愚笨!
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_31433709/article/details/106665198