我的知识库
class MyRepository @Inject constructor(
private val myDao: IMyDao
){
...
}
我的模块
@InstallIn(SingletonComponent::class)
@Module
class MyModule {
@Provides
fun provideMyRepository(MyDao: IMyDao): MyRepository{
return MyRepository(MyDao)
}
}
在工人中使用
class MyWorker(appContext: Context, workerParams: WorkerParameters) :
Worker(appContext, workerParams) {
private val myRepository: MyRepository =
EntryPointAccessors.fromApplication(appContext, MyRepository::class.java)
}
在应用程序类中启动工作进程。
但出现错误:java.lang.ClassCastException: Cannot cast com.freedom.android.DaggerMyApplication_HiltComponents_SingletonC$SingletonCImpl to com.freedom.android.MyRepository
我看了相关的文档。但是我不想使用接口,我只想提供类。
请告诉我有什么问题。
1条答案
按热度按时间weylhg0b1#
在这种情况下你需要使用剑柄工
通过下面的所有链接,您将获得所有的gradel依赖项,如何使用它们等。
https://developer.android.com/training/dependency-injection/hilt-jetpack#kotlin 一章第一章第二章