I am studying Dagger2 now. I am studying by looking at several examples. But there are some parts that aren't working properly, looking at the examples. I know that the structure of Dagger2 should be defined and implemented in the order of application -> active -> user component. However, an error occurred when following this. the message is java.lang.RuntimeException: android.app.Application does not implement dagger.android.HasActivityInjector The code is long, but I wish someone would show up to help me. I am very desperate.
I am studying Dagger2 now. I am studying by looking at several examples. But there are some parts that aren't working properly, looking at the examples. I know that the structure of Dagger2 should be defined and implemented in the order of application -> active -> user component. However, an error occurred when following this. the message is java.lang.RuntimeException: android.app.Application does not implement dagger.android.HasActivityInjector The code is long, but I wish someone would show up to help me. I am very desperate.
` AppComponent
@Singleton @Component(modules = [AndroidSupportInjectionModule::class, ActivityBindingModule::class, ApplicationModule::class]) interface AppComponent : AndroidInjector {
} BaseApplication
class BaseApplication : DaggerApplication() { override fun applicationInjector(): AndroidInjector {
return DaggerAppComponent.builder().application(this).build()
}
}
ActivityScope
@Scope annotation class ActivityScope ActivityBindingModule
@Module abstract class ActivityBindingModule {
} MainModule
@Module class MainModule { @ActivityScope @Provides fun util() : Utils = Utils()
} ApplicationModule
@Module class ApplicationModule { @Provides fun providesContext(application: Application): Context { return application } } Utils
class Utils { @Inject constructor(){ } fun add(a :Int, b:Int):Int= a+b fun sub(a :Int, b:Int):Int= a-b fun div(a :Int, b:Int):Int= a/b fun mul(a :Int, b:Int):Int= a*b
} MainActivity
class MainActivity : DaggerAppCompatActivity(), HasActivityInjector {
} `