I'm using Dagger 2.51 and I have to attach aar library which was written with Hilt. Unfortunately, there is no possibility of migrating dagger to the Hilt or getting rid of Hilt in the library. When I'm trying to run my library I'm getting Caused by: java.lang.IllegalStateException: Hilt Activity must be attached to an @HiltAndroidApp Application. But after adding @HiltAndroidApp annotation I'm getting different error:
../main/Application_HiltComponents.java:241: error: [Dagger/MissingBinding] java.util.Map<java.lang.Class<?>,javax.inject.Provider<dagger.android.AndroidInjector.Factory<?>>> cannot be provided without an @Provides-annotated method.
public abstract static class SingletonC implements FragmentGetContextFix.FragmentGetContextFixEntryPoint,
^
java.util.Map<java.lang.Class<?>,javax.inject.Provider<dagger.android.AndroidInjector.Factory<?>>> is injected at
[main.Application_HiltComponents.SingletonC] dagger.android.DispatchingAndroidInjector(injectorFactoriesWithClassKeys, …)
dagger.android.DispatchingAndroidInjector<java.lang.Object> is injected at
[main.Application_HiltComponents.SingletonC] dagger.android.DaggerApplication.androidInjector
main.Application is injected at
[main.Application_HiltComponents.SingletonC] main.Application_GeneratedInjector.injectApplication(main.Application)
this is how SingletoC class looks:
@Singleton
public abstract static class SingletonC implements FragmentGetContextFix.FragmentGetContextFixEntryPoint,
HiltWrapper_ActivityRetainedComponentManager_ActivityRetainedComponentBuilderEntryPoint,
ServiceComponentManager.ServiceComponentBuilderEntryPoint,
SingletonComponent,
GeneratedComponent,
Application_GeneratedInjector {
}
And my AppComponent:
@Singleton
@Component(
modules = [
AndroidSupportInjectionModule::class,
AppModule::class,
ViewModelFactoryModule::class,
ViewModelModule::class
]
)
interface AppComponent : AndroidInjector<main.Application> {
Any idea what am I missing?