Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unresolved reference: BR (Android Studio)

Tags:

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() } 
like image 536
Jack Guo Avatar asked Jun 20 '18 19:06

Jack Guo


People also ask

How to fix unresolved reference in Android Studio?

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.

What is Br in data binding Android?

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


2 Answers

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" 
like image 149
A. Steenbergen Avatar answered Sep 20 '22 06:09

A. Steenbergen


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.

like image 42
nyxee Avatar answered Sep 20 '22 06:09

nyxee