gpt4 book ai didi

Android ViewModel 没有零参数构造函数

转载 作者:IT王子 更新时间:2023-10-29 00:03:54 28 4
gpt4 key购买 nike

我关注 this文档以了解 LiveData 和 ViewModel。在文档中,ViewModel 类有这样的构造函数,

public class UserModel extends ViewModel {
private MutableLiveData<User> user;

@Inject UserModel(MutableLiveData<User> user) {
this.user = user;
}

public void init() {
if (this.user != null) {
return;
}
this.user = new MutableLiveData<>();
}

public MutableLiveData<User> getUser() {
return user;
}
}

但是,当我运行代码时,我得到了异常:

final UserViewModelviewModel = ViewModelProviders.of(this).get(UserViewModel.class);

Caused by: java.lang.RuntimeException: Cannot create an instance of class UserViewModel Caused by: java.lang.InstantiationException: java.lang.Class has no zero argument constructor

最佳答案

在我使用 HILT 的情况下,在具有 ViewModel 的 Fragment 上方缺少一个注释:@AndroidEntryPoint

@AndroidEntryPoint
class BestFragment : Fragment() {
....

当然,在您的 ViewModel 类中,您还需要使用 AnnotateHILT 需要什么:@ViewModelInject

class BestFragmentViewModel @ViewModelInject constructor(var userManager: UserManager) : ViewModel() {
....
}

关于Android ViewModel 没有零参数构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44194579/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com