问题:
在使用Hilt单例的时候,我们一般需要在Module上添加注解@InstallIn(ApplicationComponent::class),例如:
@InstallIn(ApplicationComponent::class)
@Module
class HttpModule {
@Singleton
@Provides
fun provideHttpObject() = HttpObject()
}
但是当Hilt升级到2.31以及之后的版本之后,会发现已经不支持ApplicationComponent了,找不到该类
原因:
ApplicationComponent 在 Dagger 2.30版本中已经标记过时了
ApplicationComponent 在 Dagger 2.31版本中就已经被移除了
解决办法:
使用SingletonComponent代替ApplicationComponent,修改后的代码如下:
@InstallIn(SingletonComponent::class)
@Module
class HttpModule {
@Singleton
@Provides
fun provideHttpObject() = HttpObject()
}
版权声明:本文为guangdeshishe原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。