daniel_c
daniel_c

Reputation: 93

How do i fix this Kodein error: Expression 'kodein' cannot be invoked as a function. The function 'invoke()' is not found

Here is the full error : e: C:\Users\HP\AndroidStudioProjects\MoneyManager\app\src\main\java\com\cruxrepublic\moneymanager\ui\auth\LoginActivity.kt: (22, 28):
Expression 'kodein' cannot be invoked as a function. The function 'invoke()' is not found

This is the block of code referred to in the error. i am new to dependency injection generally though, i would appreciate any assitance

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

}

Upvotes: 1

Views: 1279

Answers (1)

daniel_c
daniel_c

Reputation: 93

I solved this by changing the imports For Kodein, it was Previously: import org.kodein.di.kodein.

I changed it to this: import org.kodein.di.android.kodein

Upvotes: 1

Related Questions