Issue
My Contextcompat is imported but it still gives this error
image enter image description here
my build.gradle
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
}
android {
namespace 'com.nzd.library'
compileSdk 32
defaultConfig {
applicationId "com.nzd.library"
minSdk 23
targetSdk 32
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
}
dependencies {
implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.5.0'
implementation 'com.google.android.material:material:1.6.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
}
These two entered
android.useAndroidX=true android.enableJetifier=true
I paste the image in the question kindly see it. I am looking forward for the solution, if someone will help, it will be appreciated.
Solution
It imported ContextCompat fine. Notice there is no error on the import line.
You are not supposed to instantiate ContextCompat like that. It has a private constructor and only static methods so it is similar to a Kotlin object
.
To use ContextCompat, you call the function directly on ContextCompat
. For example, to use its getColor
function, you would do:
val myColor = ContextCompat.getColor(this, R.id.my_color)
The first argument is the Context. When in an Activity class, you can pass this
as the first argument. In a Fragment, you would pass requireContext()
as the first argument.
Answered By - Tenfour04
Answer Checked By - Terry (JavaFixing Volunteer)