I am converting my Android application from Java to Kotlin. It is working fine, except when I try to convert a file that is using Android Data Binding Library. In that case, Android Studio complains at compile time about unresolved reference:
Error:(10, 44) Unresolved reference: AdapterHistoriesListBinding
Where AdapterHistoriesListBinding
is the name of a file that should be generated by the Data Binding Library. It was working correctly in Java, so I guess it is an issue with Kotlin.
I am using Android Studio 2.0.0-beta6, Android Gradle Plugin 2.0.0-beta6 and Kotlin 1.0. Is there something to do to make the Data Binding Library work with Kotlin?
In Android, the Data Binding Library is a support library that allows you to bind UI components in your layouts to data sources in your app using a declarative format rather than programmatically.
Launch Android studio and create a new project. Once the project is ready, go to the Gradle scripts folder and open build. gradle (module: app) . Add buildFeatures and set databinding to true .
Using data binding can lead to faster development times, faster execution times and more readable and maintained code. Android data binding generates binding classes at compile time for layouts.
Kotlin Android Extensions is deprecated, which means that using Kotlin synthetics for view binding is no longer supported.
Few steps to setup databinding in your Kotlin project.
Tell kapt
to use databinding compiler in module dependencies:
dependencies {
kapt 'com.android.databinding:compiler:2.0.0-beta6'
}
As Shintaro Katafuchi mentioned, you should tell kapt
to generate stubs.
kapt {
generateStubs = true
}
Have you tried adding following setting in your build.gradle?
kapt {
generateStubs = true
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With