升级匕首柄后(版本:2.31-alpha
)找不到ApplicationComponent.class
。对于RoomDatabase之类的Component
,有什么替代方案?
@Module
@InstallIn(ApplicationComponent::class)
class RoomModule() {
private val DATABASE_NAME = "salat_time"
@Singleton
@Provides
fun provideRoomDatabase(@ApplicationContext appContext: Context) = Room.databaseBuilder(
appContext,
AppDatabase::class.java,
DATABASE_NAME
).createFromAsset("db/$DATABASE_NAME.sqlite").build()
@Singleton
@Provides
fun provideLocalSalatRepository(database: AppDatabase) = LocalSalatRepository(database)
@Singleton
@Provides
fun provideDistrictRepository(database: AppDatabase) = DistrictRepository(database)
}
8条答案
按热度按时间oalqel3c1#
在Dagger版本2.30中已弃用
ApplicationComponent
在Dagger版本2.31中删除了
ApplicationComponent
或者,应使用
SingletonComponent
代替ApplicationComponent
fjnneemd2#
应用程序组件已重命名为单例组件
8dtrkrch3#
仅导入:
并将模块注解为:
因为在较新版本的daggerHilt中删除了ApplicationComponent,所以我在应用级gradle文件中对daggerHilt使用这些依赖项:
0aydgbwb4#
除了已接受的答案,请务必更新到最新的剑柄版本,否则您将被卡住KaptExecution Error.
当前版本
ext.hilt_version = '2.33-beta'
6mw9ycah5#
如果您不需要@InstallIn,则可以显式禁用。
如https://dagger.dev/hilt/flags.html中所述
喜欢
7eumitmz6#
xj3cbfub7#
应用程序组件已弃用。
@模块@安装(应用程序组件::类)
更新柄依赖项并使用SingletonComponent @Module @InstallIn(SingletonComponent::类)
gpfsuwkq8#