Hilt with Dagger issue

34 views Asked by At

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?

0

There are 0 answers