在Android自定义注解开发的文章中,我遇到了一个很严重的问题,就是自定义的注解解析文件IActivityCompiler,无法在编译时生成映射文件!
最后经过多番查找文档,终于找到了问题的原因:
1、gradle和gradle tools版本问题导致无法生成。
解决方案:切换gradle和tools的版本。
高版本的gradle无法自动生成apt的映射文件,因为MATA-INF无法生成:
这个文件是对@AutoService注解的映射。
至于为什么无法生成MATA-INF文件,原因我暂时也没有搞懂。
2、注解在Kotlin文件上无法被识别的问题。(已解决)
解决方案:避免在Kotlin类上使用😂。
因为项目是混合开发,我在一个用Kotlin文件写的Activity类上使用注解,却一直无法生成映射文件:
这个地方花费了我大量的时间,一直以为是我环境或者gradle版本的问题,一直尝试多次之后才发现在Java的类上可以正常的生成映射文件,但是在Kotlin类上却不能!这对于往kotlin上迁移的项目,是一个不小的阻碍,原因展示不明。
写在最后:虽然最后解决了问题,但是导致问题的原因一个也没有找到,心里不免有些遗憾,由于工作较忙,只能等到以后有时间再好好研究研究了,如果有知道原因的朋友,还望不吝赐教,先在这里谢过了Thanks♪(・ω・)ノ~
网友评论