赞
踩
AndroidStudio 2.3.2
Koltin 版本 ext.kotlin_version = '1.1.3-2'
Gradle 版本 com.android.tools.build:gradle:2.3.2
,gradle-3.3-all.zip
在Kotlin 编写的项目使用Glide 的Generated API特性,需要在项目中通过kapt引入Glide的注解。
在项目中的Gralde中添加Glide v4和注解库的依赖:
//kapt添加的kotlin
kapt {
generateStubs true
}
dependencies {
//Glide v4
compile 'com.github.bumptech.glide:glide:4.0.0-RC0'
//在Kotlin中Glide的注解,kapt是 Kotlin内置的注解处理器
kapt 'com.github.bumptech.glide:compiler:4.0.0-RC1'
}
配置完成后,运行项目,给报错了,出现以下提示kotlin.jvm.internal.FunctionReference.
。
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> kotlin.jvm.internal.FunctionReference.<init>(ILjava/lang/Object;)V
查询资料才知道,kapt3不在允许使用kapt {generateStubs true}
,而是使用kapt插件方式。
通过过添加kapt插件的方式来使用Kapt3.
在Gradle的中添加kotlin-kapt
插件。
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'//扩展插件
apply plugin: 'kotlin-kapt'//kapt3插件
dependencies {
//Glide v4
compile 'com.github.bumptech.glide:glide:4.0.0-RC0'
//在Kotlin中Glide的注解,kapt是 Kotlin内置的注解处理器
kapt 'com.github.bumptech.glide:compiler:4.0.0-RC1'
}
当然,需要去掉kapt {generateStubs true}
这行代码。
在Kotlin编程中,如何使用Glide v4,请阅读 Glide V4与OkHttp3自定义集成(Kotlin编程)。
Java编程:
使用annotationProcessor
引入注解处理库.
例如:在Gralde中引入Glide v4的注解包。
repositories {
mavenCentral()
}
dependencies {
annotationProcessor 'com.github.bumptech.glide:compiler:4.0.0-RC1'
}
Kotlin编程:
在Kotlin中使用Kapt引入注解处理库。
例如: 在Gralde中引入Glide v4的注解包:
kapt 'com.github.bumptech.glide:compiler:4.0.0-RC1'
注意点,使用Kapt还需要添加kotlin-kapt插件。
因此,使用kapt引入Glide v4完整代码如下:
apply plugin: 'kotlin-kapt'//kapt3插件
dependencies {
kapt 'com.github.bumptech.glide:compiler:4.0.0-RC1'
}
Kotlin-kapt插件:
以下一些使用的注意事项。
不要同时使用kapt 和annotationProcessor。
若是项目中包含java代码,只使用kapt依旧会兼容到他们。
不使用kapt { generateStubs true }
,它在Kapt3中不支持。
使用apply plugin: 'kotlin-kapt'
方式来添加kapt3。
若是项目中以前使用android-apt 插件
,需要从build.gradle
移除。
参考资源:
stackoverflow上解答:https://stackoverflow.com/questions/44769417/project-wont-build-with-kotlin-1-1-3
koltin官网中Kapt介绍: https://www.kotlincn.net/docs/reference/kapt.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。