我正在尝试设置工作管理器来完成一些工作,但在初始化时遇到问题。我正在使用 KOIN workmaanger dsl
implementation "org.koin:koin-androidx-workmanager:2.2.0-rc-4"
Run Code Online (Sandbox Code Playgroud)
我的工人阶级看起来像这样
class NotificationsScheduler(
private val dispatchers: AppCoroutineDispatchers,
private val getTaskUseCase: GetTaskUseCase,
private val context: Context,
private val workerParameters: WorkerParameters
) : Worker(context, workerParameters) {
override fun doWork(): Result {
...
}
Run Code Online (Sandbox Code Playgroud)
到目前为止我所做的是禁用默认初始化程序
<provider
android:name="androidx.work.impl.WorkManagerInitializer"
android:authorities="${applicationId}.workmanager-init"
tools:node="remove" />
Run Code Online (Sandbox Code Playgroud)
我的工作模块是这样设置的
val workerModule = module {
worker { NotificationsScheduler(get(), get(), get(), get()) }
}
Run Code Online (Sandbox Code Playgroud)
并将其添加到 startKoin DSL 中使用的列表中。我还使用 workManagerFactory() DSL 来设置工厂。
startKoin {
androidContext(this@MyApplication)
workManagerFactory()
modules(koinModules)
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,当应用程序因异常启动时它会崩溃:
Caused by: org.koin.core.error.NoBeanDefFoundException: No definition found for class:'androidx.work.WorkerParameters'. Check …Run Code Online (Sandbox Code Playgroud)