我尝试用 Hilt 替换 Koin(坏主意)来进行 DI,但现在我遇到了这个错误: Hilt_App.java:21:错误:找不到符号 返回 DaggerApp_HiltComponents_ApplicationC.builder() ^ 符号:变量 DaggerApp_HiltComponents_ApplicationC
这是什么?怎么解决?
我收到了同样的错误消息。 我的问题是我有一个旧的/已弃用的 gradle 依赖项。 确保从您的 gradle 文件中删除以下依赖项:
/* DELETE this dependency */
implementation "androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha03"
如果您正在开发模块化项目,请注意依赖性!
例如,如果您的
retrofit
模块中有 data
依赖项,甚至 data
模块中的 implemented
模块 app
,您也必须添加 retrofit
依赖项或使它们与api
可访问 app
模块。
对于那些有同样错误但没有错过任何依赖项的人。我遇到了这个问题,因为我忘记用“@Inject构造函数”注释一个类。我这样做之后,一切又恢复正常了。
如评论中所回答。问题是,当使用 Jetpack 集成时,如此处针对 ViewModel https://developer.android.com/training/dependency-injection/hilt-jetpack 所解释的那样,您还必须在主应用程序模块中添加这些依赖项(而不是仅在您实际使用 ViewModel 的模块中)。
例如,如果功能模块的 build.gradle 文件中有以下内容:
implementation "com.google.dagger:hilt-android:$hilt_version"
kapt "com.google.dagger:hilt-android-compiler:$hilt_version"
implementation "androidx.hilt:hilt-lifecycle-viewmodel:$hilt_lifecycle"
kapt "androidx.hilt:hilt-compiler:1.0.0-alpha02"
确保将它们也添加到应用程序的 build.gradle 文件中
我遇到了这个问题并使用这些依赖项:
implementation "com.google.dagger:hilt-android:$hiltVersion"
kapt "com.google.dagger:hilt-android-compiler:$hiltVersion"
kapt "androidx.hilt:hilt-compiler:$hiltAndroidXVersion"
https://medium.com/gradeup/dependency-injection-dagger-hilt-vs-koin-ab2f7f85e6c6
就我而言,我忘记在类的顶部添加 com.xxx.xxx.. 包!!
我花了两天时间试图解决这个问题:(