原因:java.lang.InstantiationException:java.lang.Class 没有零参数构造函数

问题描述 投票:0回答:1

我是MVVM体系结构的新手,我正在尝试使用MVVM和kotlin启动一个新项目。我创建了一个登录活动,并且必须将用户名和密码传递给存储库。但是,当我从按钮单击传递时,它崩溃,并且ViewModel没有零构造函数。我在项目中也使用了Dagger 2(我想这是问题所在,我缺少了一些东西)。

ViewModel

@Singleton
class LoginViewModel @Inject constructor(private val loginRepository: LoginRepository) : ViewModel() {

    fun onClickLogin(username: String, password: String) {
        val loginResponse: LiveData<AccessToken> = loginRepository.getAccessToken(username, password)
    }
}

LoginActivity

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_login)

    val viewModel : LoginViewModel by viewModels()

    btnLogin.setOnClickListener({ viewModel.onClickLogin(txtMobile.text.toString(),txtPassword.text.toString()) })
}
android kotlin mvvm dagger-2 android-mvvm
1个回答
0
投票

我看到您的LoginActivity没有将loginRepository传递给构造函数。

© www.soinside.com 2019 - 2024. All rights reserved.