My top level build.gradle:
buildscript { ext.kotlin_version = '1.2.41' ext.lifecycle_version = "1.1.1" repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.1.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
My project level build.gradle:
android { ... dataBinding { enabled = true } } dependencies { ... implementation fileTree(dir: 'libs', include: ['*.jar']) implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" implementation "android.arch.lifecycle:extensions:$lifecycle_version" }
I also added android.databinding.enableV2=true
to gradle.properties per Google documents (https://developer.android.com/topic/libraries/data-binding/start)
When I try to run, it shows Unresolved reference: BR
error in my BaseViewHolder
class. It seems that BR
class has been properly generated but it also says duplicate class found in the file .../R.java
when I mouse over the class name. What have I done wrong?
fun bind(obj: Any) { binding.setVariable(BR.obj, obj) binding.executePendingBindings() }
Once you sync the Gradle build, the error should disappear. If you still see the unresolved reference error after fixing the problem, try to build your Android application with Command + F9 for Mac or Control + F9 for Windows and Linux. The error should disappear after the build is completed.
} Note: The Data Binding Library generates a class named BR in the module package which contains the IDs of the resources used for data binding. In the example above, the library automatically generates the BR. item variable.
For Android Studio 3.3, Gradle 3.3.0 and Databinding v2, the only line that needs to be added to fix this issue is in your (app's or modules) build.gradle
:
apply plugin: "kotlin-kapt"
Android Studio failed to import my BR class automatically. All solutions provided above failed. I just had to import the class manually, Android studio had created it correctly.
SAMPLE:
package your_packagename import your_packagename.BR import ... ...
I think this happened due to Copy and Paste. When i typed BR
manually, Android Stdio did the Automatic Import.
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