'Android Studio is giving errors and warnings after enabling view binding. How to fix?

I am getting errors after i enabled view binding in my project.

I have tried resyncing the project, invalidating cache. My app gradle file:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.3"

    defaultConfig {
        applicationId "com.learning.aboutme"
        minSdkVersion 19
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

    viewBinding.enabled = true

}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.core:core-ktx:1.2.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.13'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}

My project gradle file

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
     ext.kotlin_version = '1.3.72'
     repositories {
          google()
          jcenter()

     }
     dependencies {
         classpath 'com.android.tools.build:gradle:3.6.3'
         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

          // NOTE: Do not place your application dependencies here; they belong
          // in the individual module build.gradle files
     }
}

allprojects {
     repositories {
          google()
          jcenter()

     }
}

task clean(type: Delete) {
     delete rootProject.buildDir
}

My activity main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingStart="@dimen/padding"
    android:paddingEnd="@dimen/padding"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/name_text"
        style="@style/name_style"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/name"
        android:textAlignment="center" />

    <EditText
        android:id="@+id/nickname_edit"
        style="@style/name_style"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="@string/name_it_what_is_your_nickname"
        android:inputType="textPersonName"
        android:textAlignment="center" />

    <Button
        android:id="@+id/done_button"
        style="@style/Widget.AppCompat.Button.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="@dimen/layout_margin"
        android:fontFamily="@font/roboto"
        android:text="@string/done" />

    <TextView
        android:id="@+id/nickname_text"
        style="@style/name_style"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAlignment="center"
        android:visibility="gone" />

    <ImageView
        android:id="@+id/star_Image"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/layout_margin"
        android:contentDescription="@string/yellow_star"
        app:srcCompat="@android:drawable/btn_star_big_on" />

    <ScrollView
        android:id="@+id/bio_scroll"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/textView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:lineSpacingMultiplier="@dimen/spacing_multiplier"
            android:text="@string/bio"
            android:textColor="@android:color/black" />
    </ScrollView>
</LinearLayout>

Here the android studio gives a warning on android:contentDescription,textAlignment, lineSpacingMultiplier, text etc

Here is my main activity.kt file:

package com.learning.aboutme

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import com.learning.aboutme.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {
    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(R.layout.activity_main)
    }

    private fun addNickname(view: View) {

    }
}

Here android studio says: Cannot access android.viewbinding.ViewBinding which is a supertype of com.learning.aboutme.databinding.ActivityMainBinding. On ActivityMainBinding.inflate()

I tried creating a new project and moving my files there but the same errors ( Tried moving activity_main.xml and the same errors.

How to fix this?



Solution 1:[1]

For me the error went away when I added

implementation 'com.android.databinding:viewbinding:4.0.1'

to the build.gradle file.

This dependency contains the class android.viewbinding.ViewBinding which AndroidStudio could not access.

Solution 2:[2]

In my case the following steps (clearing of cache) did help:

Step 1 : open Terminal and goto your project path in terminal.
Step 2 : Optional Hit this command git clean -xfd or safe variant git clean. Be careful with -xfd this as this removes untracked files and .gitignore files
Step 3 : Goto : File -> Invalidate caches/restart.

Solution 3:[3]

Facing same issue exact error yesterday. Solution work for me is

  • Step 1- Remove .Idea Folder
  • Step 2- Close android studio
  • Step 3- Reopen android studio with same project path (This will genarate new .Idea folder)

and Error is gone

Making sure

  1. android.useAndroidX=true. inside gradle.properties file
  2. inside app build.gradle
 buildFeatures {
       viewBinding true
 }
  1. Always Use folder structure with small case latter only class name is allowed to be Uppercase
  2. If you are using any Copyright-Comment at top of xml or Layout tag without variable tag or we can say without any data then remove that and try to clean/rebuild project

Solution 4:[4]

I found the solution from here: https://cdmana.com/2021/05/20210511224308742x.html . Just add at gradle.properties

//...
android.enableD8=true
android.injected.testOnly=false

I hope it will solving your problem

Solution 5:[5]

Had the same problem with that error

android.viewbinding.ViewBinding which is a supertype of com.learning.aboutme.databinding.ActivityMainBinding. On ActivityMainBinding.inflate()

What I did and solved it was erasing from the build.grade module

viewBinding{
   enabled = true
}

And Sync it, after re added the erased code from the module and sync again and voila! That solved it for me. Thanks for all other responses tho

Solution 6:[6]

Error Solved for me By: Adding below line in the gradle.properties(Project Propoerties) file:

android.useAndroidX=true

Solution 7:[7]

You can try this solution:

add "multiDexEnabled true" in gradle file like below

android {
compileSdk 30

defaultConfig {
    applicationId "com.example.test"
    minSdk 19
    targetSdk 30
    versionCode 1
    versionName "1.0"
    multiDexEnabled true

    testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
}}

Solution 8:[8]

I faced this exact error today when I used viewBinding in my fragment so what helped was

  1. Clean and Rebuild project.
  2. Invalidate caches and restart.

Somehow the Invalidate caches and restart to be specific solved the issue.

Solution 9:[9]

Here's what worked for me:

I initially had the build.gradle(Module: App_name.app) file opened in Android Studio.

Then I opened the "Project Structure" window ... There, at the left pane, I opened the "suggestions" tab.

Several Suggestions for updating things were there, which I selected and pressed OK , after which they started getting updated from internet, and after that, did Gradle sync, and all Errors were gone in the MainActivity.kt file.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 uwe
Solution 2
Solution 3
Solution 4 fahrizal89
Solution 5 Junaid Khalid
Solution 6 Sijan Neupane
Solution 7 saman shahsavari
Solution 8 Daniel Iroka
Solution 9 yakobom