我正在关注https://android.jlelse.eu/injecting-into-workers-android-workmanager-and-dagger-948193c17684试图能够将对象注入Worker中。
我的问题在帖子末尾附近
@Inject lateinit var myWorkerFactory: MyWorkerFactory
WorkManager.initialize(
this,
Configuration.Builder()
.setWorkerFactory(myWorkerFactory)
.build()
)
我们如何为MyWorkerFactory提供匕首?我不断收到此错误:Caused by: kotlin.UninitializedPropertyAccessException: lateinit property myWorkerFactory has not been initialized
对于匕首图设置,我有:
abstract class MyWorkerModule {
@Binds
@IntoMap
@WorkerKey(MyWorker::class)
internal abstract fun bindMyWorkerFactory(worker: MyWorker.Factory): ChildWorkerFactory
}
摘自博客文章,但这实际上没有提供MyWorkerFactory
对吗?
可能不是正确的解决方案,但是您可以尝试更改此代码行。
@Inject lateinit var myWorkerFactory: MyWorkerFactory
使用此:
@Inject var myWorkerFactory: MyWorkerFactory?=null