2016-03-05 19 views
13

Sto convertendo la mia applicazione Android da Java a Kotlin. Funziona bene, tranne quando provo a convertire un file che sta utilizzando Android Data Binding Library. In tal caso, Android Studio si lamenta al momento della compilazione circa riferimento non risolto:Android Data Binding e Kotlin

Error:(10, 44) Unresolved reference: AdapterHistoriesListBinding 

Dove AdapterHistoriesListBinding è il nome di un file che deve essere generata dalla associazione dati Biblioteca. Funzionava correttamente in Java, quindi credo che sia un problema con Kotlin.

Sto utilizzando Android Studio 2.0.0-beta6, Android Gradle Plugin 2.0.0-beta6 e Kotlin 1.0. C'è qualcosa da fare per far funzionare Data Binding Library con Kotlin?

risposta

19

Pochi passaggi per impostare il databinding nel progetto Kotlin.

  1. Dillo kapt di utilizzare il compilatore associazione dati in dipendenze dei moduli:

    dependencies { 
        kapt 'com.android.databinding:compiler:2.0.0-beta6' 
    } 
    
  2. Come accennato Shintaro Katafuchi, si dovrebbe dire kapt per generare stub.

    kapt { 
        generateStubs = true 
    } 
    
2

Hai provato ad aggiungere le seguenti impostazioni nel tuo build.gradle?

kapt { 
    generateStubs = true 
} 
+2

Ho appena provato ad aggiungere che nel mio modulo 'build.gradle' (al di fuori del blocco' android'), ho pulito il mio progetto, ma il risultato è lo stesso. –

0

ho recenly scrivere blog per l'associazione dati Android con Kotlin here

Usa Classpath

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

Dipendenza

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

per maggiori dettagli check out this post