Reputation: 93
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
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