2016-03-05 107 views
13

我正在將我的Android應用程序從Java轉換爲Kotlin。它工作正常,除非我嘗試轉換使用Android數據綁定庫的文件。 在這種情況下,Android的工作室抱怨約懸而未決參考編譯時間:Android數據綁定和Kotlin

Error:(10, 44) Unresolved reference: AdapterHistoriesListBinding 

哪裏AdapterHistoriesListBinding是應該由數據綁定庫中生成一個文件名。它在Java中正常工作,所以我猜這是Kotlin的問題。

我正在使用Android Studio 2.0.0-beta6,Android Gradle插件2.0.0-beta6和Kotlin 1.0。 有沒有什麼可以使數據綁定庫與Kotlin一起工作?

回答

19

幾個步驟來設置Kotlin項目中的數據綁定。

  1. 告訴kapt使用數據綁定編譯器模塊依賴關係:

    dependencies { 
        kapt 'com.android.databinding:compiler:2.0.0-beta6' 
    } 
    
  2. 至於石原慎太郎片淵提到的,你應該告訴kapt生成存根。

    kapt { 
        generateStubs = true 
    } 
    
2

您是否嘗試在build.gradle中添加以下設置?

kapt { 
    generateStubs = true 
} 
+2

我只是試着在我的模塊的'build.gradle'(在'android'塊之外)添加,清理了我的項目,但結果是一樣的。 –

0

我已經recenly寫博客的數據綁定的Android與科特林here

使用的Classpath

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' 
} 

有關更多詳細信息,請查看this post