In this project, I am using the Dagger-hilt for the Dependency injection. But I am getting the following error When I use hilt annotation @AndroidEntryPoint, @Inject,@Module, etc. Without hilt annotation, it is working fine.
2021-06-02 12:25:15.169 17359-17359/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.dependencyinjection, PID: 17359
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.dependencyinjection/com.example.dependencyinjection.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.dependencyinjection.MainActivity" on path: DexPathList[[zip file "/data/app/~~JF_ZwLWX1YeWqPVpJDysrA==/com.example.dependencyinjection-rqflkMjlfZD1nrWAo6UPmw==/base.apk"],nativeLibraryDirectories=[/data/app/~~JF_ZwLWX1YeWqPVpJDysrA==/com.example.dependencyinjection-rqflkMjlfZD1nrWAo6UPmw==/lib/arm64, /system/lib64, /system/system_ext/lib64]]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3474)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3730)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2169)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:236)
at android.app.ActivityThread.main(ActivityThread.java:8025)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:620)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.dependencyinjection.MainActivity" on path: DexPathList[[zip file "/data/app/~~JF_ZwLWX1YeWqPVpJDysrA==/com.example.dependencyinjection-rqflkMjlfZD1nrWAo6UPmw==/base.apk"],nativeLibraryDirectories=[/data/app/~~JF_ZwLWX1YeWqPVpJDysrA==/com.example.dependencyinjection-rqflkMjlfZD1nrWAo6UPmw==/lib/arm64, /system/lib64, /system/system_ext/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)
at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:45)
at android.app.Instrumentation.newActivity(Instrumentation.java:1253)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3462)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3730)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2169)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:236)
at android.app.ActivityThread.main(ActivityThread.java:8025)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:620)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)
Suppressed: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/example/dependencyinjection/Hilt_MainActivity;
at java.lang.VMClassLoader.findLoadedClass(Native Method)
at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:738)
at java.lang.ClassLoader.loadClass(ClassLoader.java:363)
... 16 more
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.dependencyinjection.Hilt_MainActivity" on path: DexPathList[[zip file "/data/app/~~JF_ZwLWX1YeWqPVpJDysrA==/com.example.dependencyinjection-rqflkMjlfZD1nrWAo6UPmw==/base.apk"],nativeLibraryDirectories=[/data/app/~~JF_ZwLWX1YeWqPVpJDysrA==/com.example.dependencyinjection-rqflkMjlfZD1nrWAo6UPmw==/lib/arm64, /system/lib64, /system/system_ext/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
... 19 more
This is my build.gradle(:app) file.
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'dagger.hilt.android.plugin'
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig {
multiDexEnabled true
applicationId "com.example.dependencyinjection"
minSdkVersion 26
targetSdkVersion 30
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
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
//hilt dependencies
implementation "com.google.dagger:hilt-android:2.35"
annotationProcessor 'com.google.dagger:hilt-android-compiler:2.28-alpha'
implementation "androidx.multidex:multidex:2.0.1"
}
This is build.gradle(Project).
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath "com.android.tools.build:gradle:4.2.0"
classpath "com.google.dagger:hilt-android-gradle-plugin:2.35.1"
}
}
allprojects {
repositories {
google()
mavenCentral()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
MaiActivity.
package com.example.dependencyinjection;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import javax.inject.Inject;
import dagger.hilt.android.AndroidEntryPoint;
@AndroidEntryPoint
public class MainActivity extends AppCompatActivity {
@Inject
Car car;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
car.startCar();
}
}