Kotlin中使用注解框架
今天在kotlin中使用到了dagger2的注解框架,但是构建项目的时候始终构建不出来dagger,查了很多资料,有些说是jdk1.9造成的,但是总感觉不是这方面原因,也没去换成jdk1.8版本的,最后得到解决。
首先明白compile,annotationProcessor,apt与kapt的区别:
compile:是对所有的build type以及favlors都会参与编译并且打包到最终的apk文件中。
apt:是一种处理注解的工具,它对源代码文件进行检测找出其中的Annotation,根据注解自动生成代码。 Annotation处理器在处理Annotation时可以根据源文件中的Annotation生成额外的源文件和其它的文件,APT还会编译生成的源文件和原来的源文件,将它们一起生成class文件,只在编译的时候执行依赖的库,但是库最终不打包到apk中(但是android-apt不再维护 所以google自己开发了annotationProcessor)
annotationProcessor:是APT工具中的一种,他是google开发的内置框架,不需要引入,可以直接在build.gradle文件中使用,只在编译的时候执行依赖的库,但是库最终不打包到apk中
compile 'com.google.dagger:dagger:2.0'
annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
kapt:跟apt一样实用于注解框架中,但是这个是面向kotlin使用的注解框架,只在编译的时候执行依赖的库,但是库最终不打包到apk中
具体使用:
在module的build.gradle中添加
apply plugin: 'kotlin-kapt'
dependencies 中:
compile 'com.google.dagger:dagger:2.0'
kapt 'com.google.dagger:dagger-compiler:2.0'
【Kotlin中使用注解框架】由上可知,如果要在kotlin中使用注解框架就要使用kapt来处理,不用kotlin就要使用annotationProcessor来处理注解框架。 注(android中的注解框架一般都是在地址中添加了-compiler的仓库地址)
推荐阅读
- 热闹中的孤独
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 由浅入深理解AOP
- 异地恋中,逐渐适应一个人到底意味着什么()
- 【译】20个更有效地使用谷歌搜索的技巧
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售