这是完整的错误: e: C:\Users\HP\AndroidStudioProjects\MoneyManager\app\src\main\java\com\cruxRepublic\moneymanager\ui\auth\LoginActivity.kt: (22, 28(:
表达式 'kodein' 不能作为函数调用。找不到函数 'invoke(('
这是错误中引用的代码块。 我一般是依赖注入的新手,我将不胜感激任何帮助
class LoginActivity() : AppCompatActivity(), AuthListener, KodeinAware {
override val kodein by kodein()
private val factory by instance<AuthViewModelFactory>()
private lateinit var authViewModel: AuthViewModel
private lateinit var binding: ActivityLoginBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding= DataBindingUtil.setContentView(this,R.layout.activity_login)
authViewModel = ViewModelProvider(this,factory).get(AuthViewModel::class.java)
binding.authViewModel = authViewModel
authViewModel.authListener = this
}
我通过更改导入来解决这个问题 对于 Kodein,它是 以前:import org.kodein.di.kodein。
我把它改成这样:import org.kodein.di.android.kodein