Reputation: 1695
So if you are getting anything like below
> Configure project :app
Warning: The 'kotlin-android-extensions' Gradle plugin is deprecated.
This probably means which means that using Kotlin synthetics for view binding is no longer supported / deprecated.
So below is the answer where you can clearly get understanding on how to get / identify your ViewBinding class related to your views.
Upvotes: 1
Views: 13577
Reputation: 1695
In order to migrate to the newer way of binding you need to first remove the kotlin synthetics plugin which could have been added as below :
apply plugin: 'kotlin-android-extensions'
OR
plugins {
...
id 'kotlin-android-extensions'
}
after removing synthetic plugin from app gradle you need to remove the imports which could like either of below :
Now begins actual migration
You need to add below inside your app gradle
android {
...
buildFeatures {
viewBinding true
}
}
After this you need to add a binding property where your view is to be bound. Below is an example :
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
binding.myTextView.text = "my text" //say your text view id is like : my_text_view"
}
Note : if your activity layout is activity_main.xml then your binding should be ActivityMainBinding
here you will find view binding example for fragment
here is official migration doc from google
Upvotes: 7