android - 如何修复此 Kodein 错误 : Expression 'kodein' cannot be invoked as a function. 找不到函数 'invoke()'

标签 android kotlin kodein

这是完整的错误: e: C:\Users\HP\AndroidStudioProjects\MoneyManager\app\src\main\java\com\cruxrepublic\moneymanager\ui\auth\LoginActivity.kt: (22, 28):
表达式“kodein”不能作为函数调用。未找到函数“invoke()”
这是错误中引用的代码块。我通常是依赖注入(inject)的新手,但我会很感激任何帮助

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

关于android - 如何修复此 Kodein 错误 : Expression 'kodein' cannot be invoked as a function. 找不到函数 'invoke()',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62566511/

相关文章:

java - 这是一种安全的加密方法吗

android - 当 2d 数组元素的变量在 Compose with Clean Architecture 中发生变化时重新组合

android - 依赖图在 Koin 或 Kodein 中如何工作?

dependency-injection - 在 Kodein 依赖注入(inject)中,如何将 Kodein 本身的实例注入(inject)到实例中?

java - MODE_STREAM 中的 AudioTrack 没有声音

java - 有时写入文件 block

android - 各种问题@NonNull、@NotNull 和@ParametersAreNonnullByDefault

Android onUpgrade() 失败,因为数据库被锁定,我应该怎么做?

kotlin - 如何将 kotlin 原生代码编译成 iOS 框架?