Malik Hasan
07/10/2024, 8:49 PMorg.koin.core.error.NoBeanDefFoundException: No definition found for type 'androidx.work.WorkManager'. Check your Modules configuration and add missing type and/or qualifier!
When I try to inject WorkManager from Koin.
I have in onCreate of Application
startKoin {
androidContext(context)
workManagerFactory()
modules(...
And Android Manifest
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
android:exported="false"
tools:node="merge">
<meta-data
android:name="androidx.work.WorkManagerInitializer"
android:value="androidx.startup"
tools:node="remove" />
</provider>
And then injecting into my classes.
Is there anything else I need to do to get WorkManager from Koin besides this?arnaud.giuliani
07/11/2024, 7:31 AMMalik Hasan
07/11/2024, 3:35 PMarnaud.giuliani
07/11/2024, 4:23 PMMalik Hasan
07/11/2024, 4:27 PMsingle { WorkManager.getInstance(get()) }
I thought workManagerFactory() should provide it automatically (like androidContext()) but I guess notarnaud.giuliani
07/12/2024, 1:19 PMarnaud.giuliani
07/12/2024, 1:19 PMMalik Hasan
07/12/2024, 3:34 PM"io.insert-koin:koin-androidx-workmanager:3.5.6"
arnaud.giuliani
07/12/2024, 3:53 PMarnaud.giuliani
07/12/2024, 3:54 PMarnaud.giuliani
07/12/2024, 3:55 PMMalik Hasan
07/12/2024, 4:35 PMworkerOf
syntaxarnaud.giuliani
07/12/2024, 5:17 PMarnaud.giuliani
07/12/2024, 5:17 PMMalik Hasan
07/12/2024, 5:51 PM//koin
viewModelOf(::MyViewModel)
workerOf(::MyWorker)
// myViewModel
class MyViewModel(val workManager: WorkManager) {
fun doSomething() {
val work = OneTimeWorkRequestBuilder<MyWorker>().build()
workManager.enqueue(work)
}
}
Malik Hasan
07/12/2024, 5:52 PMMalik Hasan
07/12/2024, 6:00 PMMalik Hasan
07/12/2024, 6:00 PMarnaud.giuliani
07/12/2024, 6:01 PMMalik Hasan
07/12/2024, 6:01 PM