[英]Hilt Dagger Error java.lang.RuntimeException: Cannot create an instance of class HomeFragmentViewModel
I was trying to inject my viewModel to fragment but I have this error:我试图将我的 viewModel 注入片段,但出现此错误:
java.lang.RuntimeException: Cannot create an instance of class com.mas.cryptomasters.ui.fragment.home.HomeFragmentViewModel java.lang.RuntimeException:无法创建 class com.mas.cryptomasters.ui.fragment.home.HomeFragmentViewModel 的实例
My Code:我的代码:
class HomeFragment : BaseFragment<FragmentHomeBinding>() {
private val viewModel: HomeFragmentViewModel by viewModels()
override fun init() {
viewModel.homeMutable.observe(this) {
when {
it.reLogin -> requireActivity().reLogin()
it.error.isNotEmpty() -> requireContext().crToast()
it.data != null -> Log.e("TAG", "data != null")
}
}
}
}
And this my ViewModel class这是我的 ViewModel class
@HiltViewModel
class HomeFragmentViewModel @Inject constructor(apiRepository: ApiRepository) :
ViewModel() {
val homeMutable: MutableLiveData<Response> = MutableLiveData()
init {
viewModelScope.launch {
apiRepository.getHome()
.let {
when (it.isRequestSuccess(it.body()!!.code)) {
RESPONSE.SUCCESS -> homeMutable.postValue(Response(it.body()!!))
RESPONSE.ERROR -> homeMutable.postValue(Response(error = "${it.errorBody()}"))
RESPONSE.AUT -> homeMutable.postValue(Response(reLogin = true))
}
}
}
}
}
@AndroidEntryPoint
annotation.确保您的活动和片段具有@AndroidEntryPoint
注释。implementation "androidx.fragment:fragment-ktx:1.4.1"
to build.gradle(:app)
将implementation "androidx.fragment:fragment-ktx:1.4.1"
添加到build.gradle(:app)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.