<@U6P03BM0W> - You must use `by` when using a `K...
# kodein
s
@dave08 - You must use
by
when using a
KodeinInjector
, because whatever you are retrieving, it won't be retrieved before you actually give the injector a kodein instance with
inject(kodein)
, hence the use of property delegates (that do not retrieve but register the need to retrieve), hence the use of
by
. - The
Parameter specified as non-null is null
error comes from the Kotlin's order of initialization. It's a Kotlin "bug" (that is not really a bug). In that case, Kotlin tries to initialize the parent values before the children (which is the expected order of init), but because you have a value that is initialized in the parent (
kodein
) that needs a value initialized in the child class (
module
), well, it fails 🙂 That's why you should never use child values or methods in the initialization or constructor of a parent class. In this case, I suspect using
val kodein by Kodein.lazy {
will correct the issue 🙂 - Kodein does not support async loading, that's an idea I'll explore 😉