Android数据绑定和Kotlin

我将我的Android应用程序从Java转换为Kotlin。 它工作正常,除了当我尝试转换使用Android数据绑定库的文件。 在这种情况下,Android Studio会在编译时抱怨未解决的引用:

Error:(10, 44) Unresolved reference: AdapterHistoriesListBinding 

其中AdapterHistoriesListBinding是应该由数据绑定库生成的文件的名称。 它在Java中正常工作,所以我猜这是Kotlin的一个问题。

我正在使用Android Studio 2.0.0-beta6,Android Gradle Plugin 2.0.0-beta6和Kotlin 1.0。 数据绑定库和Kotlin一起工作有什么需要做的吗?

几个步骤来设置您的Kotlin项目的数据绑定。

  1. 告诉kapt在模块依赖关系中使用数据绑定编译器:

     dependencies { kapt 'com.android.databinding:compiler:2.0.0-beta6' } 
  2. 正如Shintaro Katafuchi提到的,​​你应该告诉kapt生成存根。

     kapt { generateStubs = true } 

你有没有尝试在build.gradle中添加以下设置?

 kapt { generateStubs = true } 

我最近在这里写了博客数据绑定安卓与Kotlin

使用类路径

 classpath 'com.android.tools.build:gradle:3.0.0-beta2' 

依赖

 apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' android { ... dataBinding { enabled = true } } dependencies { ...... kapt 'com.android.databinding:compiler:2.3.1' } 

更详细的检查这个职位