Reputation: 387
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?
Upvotes: 16
Views: 18766
Reputation: 1
Just keep the settings as it is.
Try to delete the dataBinding modules from the path C:\Users\"your user name"\.gradle\caches\modules-2\files-2.1
.
Try to sync the project once the deletion is done.
The viewBinding issue got resolved for me in that way.
Upvotes: 0
Reputation: 2366
To me this happened because I had my layout wrapped into <layout>
tag. This tag is only needed if you use data binding and causes issues when used with view binding alone.
Upvotes: 0
Reputation: 1
For me the error went away when I added
implementation 'com.android.databinding:viewbinding:7.3.1'
to the build.gradle file.
This dependency contains android.viewbinding.ViewBinding
which android studio may not be able to access without this dependency.
Upvotes: 0
Reputation: 564
I faced the same problem and I fix it by doing the steps below:
1- go to build.gradle file and remove
buildFeatures { viewBinding = true }
if you already put it there
2-synch
3-Clean and Rebuild the project.
4-put viewBinding back again
buildFeatures { viewBinding = true}
5-synch again
Upvotes: 0
Reputation: 1
i adding dependencies in build.gradle
Upvotes: 0
Reputation: 7703
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.
Upvotes: 12
Reputation: 133
I faced this exact error today when I used viewBinding in my fragment so what helped was
Somehow the Invalidate caches and restart to be specific solved the issue.
Upvotes: 1
Reputation: 21
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
Upvotes: 2
Reputation: 3825
Facing same issue exact error yesterday. Solution work for me is
and Error is gone
Making sure
buildFeatures { viewBinding true }
Upvotes: 10
Reputation: 21
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'
}}
Upvotes: 0
Reputation: 116
Error Solved for me By: Adding below line in the gradle.properties(Project Propoerties) file:
android.useAndroidX=true
Upvotes: 0
Reputation: 1
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.
Upvotes: -1
Reputation: 825
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
Upvotes: 2
Reputation: 4081
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.
Upvotes: 45