我对Android上的依赖注入是个新手。我使用的是Dagger-Hilt,在我为DB提供程序生成的AppModule类中,我得到了一个错误,项目没有编译。
错误是This is my AppModule @InstallIn can only be used on @Module or @EntryPoint classes。我在哪里犯了错?
@Module
@InstallIn(ApplicationComponent::class)
object AppModule {
@Singleton
@Provides
fun provideAppDatabase(
@ApplicationContext app: Context
) = Room.databaseBuilder(
app,
AppDatabase::class.java,
"gelirkenal"
).build()
@Singleton
@Provides
fun provideItemDao(db: AppDatabase) = db.itemDao()
}发布于 2021-02-07 19:20:01
我设置了Module的导入,如下所示:
import com.google.android.datatransport.runtime.dagger.Module
但以下内容是正确的:
import dagger.Module
发布于 2021-05-16 00:38:43
将ApplicationComponent::class更改为SingletonComponent::class,您还可以通过引用此Hilt Generated Components找到更多hilt生成的组件
@Module
@InstallIn(SingletonComponent::class)
object AppModule {
@Singleton
@Provides
fun provideAppDatabase(
@ApplicationContext app: Context
) = Room.databaseBuilder(
app,
AppDatabase::class.java,
"gelirkenal"
).build()
@Singleton
@Provides
fun provideItemDao(db: AppDatabase) = db.itemDao()
}发布于 2021-08-31 19:30:59
更改以下导入:
import com.google.android.datatransport.runtime.dagger.Module
import com.google.android.datatransport.runtime.dagger.Binds转到=>
import dagger.Module
import dagger.Bindshttps://stackoverflow.com/questions/65259371
复制相似问题