当前位置:   article > 正文

kotlin.jvm.internal.FunctionReference与Kotlin-kapt插件使用

kotlin.jvm.internal

1. 项目开发配置(展示)

  • 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

2. 使用过程

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'
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

3. 运行结果

配置完成后,运行项目,给报错了,出现以下提示kotlin.jvm.internal.FunctionReference.

Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> kotlin.jvm.internal.FunctionReference.<init>(ILjava/lang/Object;)V
  • 1
  • 2

查询资料才知道,kapt3不在允许使用kapt {generateStubs true},而是使用kapt插件方式。

4. 解决方式

通过过添加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'
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

当然,需要去掉kapt {generateStubs true}这行代码。

在Kotlin编程中,如何使用Glide v4,请阅读 Glide V4与OkHttp3自定义集成(Kotlin编程)

Kotlin Kapt插件介绍


  • Java编程

    使用annotationProcessor引入注解处理库.

    例如:在Gralde中引入Glide v4的注解包。

    repositories {
      mavenCentral()
    }
    
    dependencies {
      annotationProcessor 'com.github.bumptech.glide:compiler:4.0.0-RC1'
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • Kotlin编程

    在Kotlin中使用Kapt引入注解处理库。

    例如: 在Gralde中引入Glide v4的注解包:

    kapt 'com.github.bumptech.glide:compiler:4.0.0-RC1'
    • 1

    注意点,使用Kapt还需要添加kotlin-kapt插件。

    因此,使用kapt引入Glide v4完整代码如下:

    apply plugin: 'kotlin-kapt'//kapt3插件
    
    dependencies {
       kapt 'com.github.bumptech.glide:compiler:4.0.0-RC1'
    }
    • 1
    • 2
    • 3
    • 4
    • 5
  • Kotlin-kapt插件

    以下一些使用的注意事项。

    • 不要同时使用kapt 和annotationProcessor。
      若是项目中包含java代码,只使用kapt依旧会兼容到他们。

    • 不使用kapt { generateStubs true },它在Kapt3中不支持。

    • 使用apply plugin: 'kotlin-kapt'方式来添加kapt3。

    • 若是项目中以前使用android-apt 插件,需要从build.gradle移除。

参考资源

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/277477
推荐阅读
相关标签
  

闽ICP备14008679号