android - 如何修复此 Kodein 错误:无法将表达式“kodein”作为函数调用。未找到函数“invoke()”
问题描述
这是完整的错误: e: C:\Users\HP\AndroidStudioProjects\MoneyManager\app\src\main\java\com\cruxrepublic\moneymanager\ui\auth\LoginActivity.kt: (22, 28):
Expression '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
推荐阅读
- reactjs - 在 React.JS 中的组件上创建条件时出错
- android - 保存密码常量的最佳方法
- c# - 如何使用 WPFMediaKit 加载和播放视频而不会出现故障?
- javascript - REACT + FIRESTORE :监听 react 组件中 firebase 集合的变化以自动更新反应状态
- aws-cdk - CDK ElasticSearch:设置 AccessPolicies 属性会导致堆栈失败
- javascript - 3秒后隐藏一条消息,我的代码显示多次
- python - 命名风格、约定
- git - 在 GITHUB 上从 https 迁移到 ssh
- c++ - 如果我拥有 C++ 基类但不拥有甚至不知道派生类,我能否判断给定对象是否是派生类的实例?
- node.js - 递归检查每个聚合的文件夹名称?