Я пытаюсь использовать рукоять для своего проекта, который содержит динамические функции. Я столкнулся с ошибкой, и я не могу полностью понять, почему. Я получаю такую ошибку:
java.lang.ClassCastException: com.social.analysis.DaggerApp_HiltComponents_ApplicationC$ActivityRetainedCImpl$ActivityCImpl$FragmentCImpl cannot be cast to com.social.login.intro.IntroFragment_GeneratedInjector
at com.social.login.intro.Hilt_IntroFragment.inject(Hilt_IntroFragment.java:94)
at com.social.login.intro.Hilt_IntroFragment.initializeComponentContext(Hilt_IntroFragment.java:58)
at com.social.login.intro.Hilt_IntroFragment.onAttach(Hilt_IntroFragment.java:50)
at androidx.fragment.app.Fragment.onAttach(Fragment.java:1602)
at com.social.login.intro.Hilt_IntroFragment.onAttach(Hilt_IntroFragment.java:40)
Моя модель просмотра в МОДУЛЕ ВХОДА (динамические функции)
class IntroViewModel @Inject constructor(): ViewModel() {
// TODO: Implement the ViewModel
}
Мой фрагмент в МОДУЛЕ ВХОДА
@AndroidEntryPoint
class IntroFragment : BaseFragment<FragmentIntroBinding, IntroViewModel>(
R.layout.fragment_intro
) {
companion object {
fun newInstance() = IntroFragment()
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
}
override fun onInitDataBinding() {
viewBinding.viewModel = viewModel
}
}
Мой базовый фрагмент в модуле пользовательского интерфейса
abstract class BaseFragment <B: ViewDataBinding, M: ViewModel>(
@LayoutRes
private val layoutId: Int
): Fragment() {
@Inject
lateinit var viewModel: M
lateinit var viewBinding: B
...
Мой класс приложения в модуле приложения
@HiltAndroidApp
class App : SplitCompatApplication() {
}
Мое основное действие в модуле приложения
@AndroidEntryPoint
class MainActivity : AppCompatActivity()
Я вызываю IntroFragment из модуля App. Потом приложение вылетает.
Структура проекта выглядит так: