Android WorkRequest构造函数注入失败

时间:2018-08-05 12:54:14

标签: android android-architecture-components android-jetpack android-workmanager

我有一个扩展Worker类的类。例如,我希望此类每小时通过Repository发出API请求。 我遇到的问题是我需要以某种方式注入Repository,并考虑通过构造函数注入它(我正在使用koin)。 问题是当实例化我的WorkRequest类时,其状态始终为FAILED,并且我可以看到以下错误:

2018-08-05 14:21:54.252 19213-19634/E/WorkerWrapper: Trouble instantiating PortfolioChangesWorker
java.lang.InstantiationException: java.lang.Class<PortfolioChangesWorker> has no zero argument constructor
    at java.lang.Class.newInstance(Native Method)
    at androidx.work.impl.WorkerWrapper.workerFromClassName(WorkerWrapper.java:496)
    at androidx.work.impl.WorkerWrapper.workerFromWorkSpec(WorkerWrapper.java:468)
    at androidx.work.impl.WorkerWrapper.runWorker(WorkerWrapper.java:173)
    at androidx.work.impl.WorkerWrapper.run(WorkerWrapper.java:105)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
    at java.lang.Thread.run(Thread.java:764)
2018-08-05 14:21:54.253 19213-19634/E/WorkerWrapper: Could for create Worker PortfolioChangesWorker

这是我作为worker类的构造函数所拥有的:

class PortfolioChangesWorker(val repository: CoinRepository) : Worker()

在我的Koin模块之一中,我有:

bean { PortfolioChangesWorker(repository = get()) }

还有其他方法可以将依赖项注入WorkRequest类吗?还有其他方法可以实现吗?

谢谢!

0 个答案:

没有答案