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中使用注解框架就要使用kapt来处理,不用kotlin就要使用annotationProcessor来处理注解框架。 注(android中的注解框架一般都是在地址中添加了-compiler的仓库地址)

你可能感兴趣的:(Kotlin中使用注解框架)