1

I have a ViewModel constructed like this with Hilt:

@HiltViewModel
class RegisterViewModel @Inject constructor(
    private val savedStateHandle: SavedStateHandle,
    private val networkClient: NetworkClient
) : ViewModel() {}

But when I run the app it gives me an error:

java.lang.RuntimeException: Cannot create an instance of class com.package_name.RegisterViewModel
        at androidx.lifecycle.ViewModelProvider$NewInstanceFactory.create(ViewModelProvider.java:221)
        at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:278)
        at androidx.lifecycle.SavedStateViewModelFactory.create(SavedStateViewModelFactory.java:112)
        at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:185)
        at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:150)
        at androidx.lifecycle.ViewModelLazy.getValue(ViewModelProvider.kt:54)
        at androidx.lifecycle.ViewModelLazy.getValue(ViewModelProvider.kt:41)
        at path_of_project.register.RegisterFragment.getRegisterViewModel(Unknown Source:2)
        at path_of_project.ui.auth.register.RegisterFragment.onViewCreated(RegisterFragment.kt:53)
        at androidx.fragment.app.Fragment.performViewCreated(Fragment.java:2974)
        at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:543)
        at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282)
        at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:112)

Everything seems fine. Even the setup:

    implementation "com.google.dagger:hilt-android:$hilt_version"
    kapt "com.google.dagger:hilt-compiler:$hilt_version"

What am I doing wrong?

coroutineDispatcher
  • 7,718
  • 6
  • 30
  • 58

1 Answers1

1

In this case. Make sure not to forget to annotate the Fragment or the Activity with @AndroidEntryPoint:

@AndroidEntryPoint
class RegisterFragment : Fragment(R.layout.fragment_register) {}

If that is not the case, see here.

coroutineDispatcher
  • 7,718
  • 6
  • 30
  • 58