Build error after update from Kotling 1.3.21 to 1.3.30:
AppComponent.java:16: error: [Dagger/MissingBinding]
java.util.Map<java.lang.Class<? extends androidx.lifecycle.ViewModel>,
javax.inject.Provider<androidx.lifecycle.ViewModel>>
cannot be provided without an @Provides-annotated method.
Reproduced on two different projects with similar dependencies on Kotlin, Dagger and Architecture components.
I suspect it somehow related to the recent kapt updates in kotlin 1.3.30: https://blog.jetbrains.com/kotlin/2019/04/kotlin-1-3-30-released/
Tried to disable/enable the kapt options from the article, tried gradle clean, invalidate caches, nothing helps. Only downgrading to 1.3.21 projects build successfully.
This bug was already reported by someone on GitHub and on YouTrack. This should be fixed once Kotlin version 1.3.31 gets released.
Update: Kotlin 1.3.31 is out, so make sure to update your Kotlin version!
The workaround for Kotlin 1.3.30 listed on GitHub is to use a Java annotation instead of Kotlin for
ViewModelKey
, or you may downgrade back to Kotlin 1.3.21.Upgrade
dagger version and kotlin version to thelatest
annotation class
should work.Currently the latest version is :-
Dagger version :-
2.23.2
Kotlin version :-
1.3.41