I'm developing an app with a dynamic features that saves user's favorites, and I'm using Hilt for injection.
But I got this error:
java.lang.IllegalStateException: Given component holder class com.rmaprojects.favorite.presentation.FavoriteFragment does not implement interface dagger.hilt.internal.GeneratedComponent or interface dagger.hilt.internal.GeneratedComponentManager
at dagger.hilt.EntryPoints.get(EntryPoints.java:62)
at dagger.hilt.android.EntryPointAccessors.fromFragment(EntryPointAccessors.kt:66)
at com.rmaprojects.favorite.presentation.FavoriteFragment.onAttach(FavoriteFragment.kt:38)
What I've done:
Created @Component:
@Component( dependencies = [FavoriteModuleDependencies::class] ) interface FavoriteComponent { fun inject(fragment: FavoriteFragment) @Component.Builder interface Builder { fun context(@BindsInstance context: Context): Builder fun appDependencies(favoriteModuleDependencies: FavoriteModuleDependencies): Builder fun build(): FavoriteComponent } }
Created Module for @EntryPoint:
@EntryPoint @InstallIn(SingletonComponent::class) interface FavoriteModuleDependencies { fun phonePediaUseCases(): PhonePediaUseCases }
Applied component builder in the Fragment:
class FavoriteFragment: Fragment(R.layout.fragment_favorite) { @Inject lateinit var factory: ViewModelFactory private val viewModel: FavoriteViewModel by viewModels { factory } override fun onAttach(context: Context) { super.onAttach(context) DaggerFavoriteComponent.builder() .context(requireActivity().applicationContext) .appDependencies( EntryPointAccessors.fromFragment( this, FavoriteModuleDependencies::class.java ) ) .build() .inject(this) }
Any solution with this? Any help will be appreciated