gpt4 book ai didi

android - @InstallIn,只能和@DefineComponent注解的类一起使用,但是发现: [com. abc.xyz.AppClass]

转载 作者:行者123 更新时间:2023-12-04 23:43:43 24 4
gpt4 key购买 nike

根据 Hilt 的文档,我完成了所有步骤
将类路径添加到项目模块

classpath "com.google.dagger:hilt-android-gradle-plugin:$hilt_version"
添加插件
plugins {
id "kotlin-kapt"
id("dagger.hilt.android.plugin")
}
添加依赖项
dependencies {
implementation("com.google.dagger:hilt-android:$hilt_version")
kapt("com.google.dagger:hilt-android-compiler:$hilt_version")
}
带注释的应用程序类,在我的例子中是 AppClass,带有 @HiltAndroidApp .带注释的 Activity 和关于 fragment 的 @AndroidEntryPoint .
创建模块为
@InstallIn(AppClass::class)
@Module
object DatabaseModule {

@Provides
@Singleton
fun provideAppDB(application: Application): AppDB {
return AppDB.getDatabase(application)
}

@Provides
@Singleton
fun provideMediaDao(appDB: AppDB): MediaDao {
return appDB.downloadMediaDao()
}
}
将其注入(inject) ViewModel 类中
@HiltViewModel
class DownloadViewModel @Inject constructor(
private val mediaDao: MediaDao
): ViewModel() {
...
}
但是在执行完所有步骤后,我收到错误消息“@InstallIn,只能与@DefineComponent-annotated 类一起使用,但发现:[com.abc.xyz.AppClass]”

最佳答案

Codelab 中所定义,我换了这个

@InstallIn(AppClass::class)
有了这个
@InstallIn(SingletonComponent::class)
它正在工作。

关于android - @InstallIn,只能和@DefineComponent注解的类一起使用,但是发现: [com. abc.xyz.AppClass],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67984384/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com