android - @InstallIn 只能用于 @Module 或 @EntryPoint 类

标签 android kotlin dagger dagger-hilt

我是 Android 依赖注入(inject)的新手。我正在使用 Dagger-Hilt,在为 DB 提供程序生成的 AppModule 类中出现错误并且项目无法编译。
错误是 @InstallIn can only be used on @Module or @EntryPoint classes这是我的 AppModule 对象。我在哪里犯错?

@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()
}

最佳答案

我将 Module 的导入设置如下:import com.google.android.datatransport.runtime.dagger.Module但以下是正确的:import dagger.Module

关于android - @InstallIn 只能用于 @Module 或 @EntryPoint 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65259371/

相关文章:

android - Java 的 Dagger 中的 addTo 和 includes 有什么区别?

android - Dagger - 嵌套注入(inject),有必要调用inject()吗?

android - 在 Android 中,当扩展 FirebaseMessagingService 调用 onMessageReceived 时如何获取当前 Activity 上下文?

android - 测试或开发时从 Android App 禁用 GoogleAnalytics

android如何为progressdialog设置时间

android - 如何在 Kotlin 多平台项目的 iOS 模块中将字符串转换为字节数组?

android - kotlin 并正确声明变量

android - 如何在微调器中单击更多项目并突出显示它?

java - Dagger2 允许注入(inject)为空

android - 如何使用 python 中的 GMT 增量从时间戳获取日期时间对象?