Vis*_*war 6 android dagger-hilt
尝试使用 android Api 文档集成刀柄,但应用程序因以下异常而崩溃。https://developer.android.com/training/dependency-injection/hilt-android
java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.package.application/com.package.application.MainActivity}:
java.lang.ClassCastException: com.package.application.DaggerAppApplication_HiltComponents_ApplicationC$ActivityRetainedCImpl$ActivityCImpl
cannot be cast to com.package.application.MainActivity_GeneratedInjector
Run Code Online (Sandbox Code Playgroud)
a f*_*yer 39
对我有用的:
@AndroidEntryPoint从活动中删除了注释。@AndroidEntryPoint到活动中。She*_*nov 10
对我来说,作为我的应用 build.gradle 中的依赖声明,我不得不使用api而不是implementation:
api 项目(':功能:feedModule')
在此处了解更多信息:https : //github.com/google/dagger/issues/2064
更新:Dagger 团队发布了可以解决此问题的类路径聚合功能。您可以在此处了解更多信息:https : //dagger.dev/hilt/gradle-setup#classpath-aggregation
基本上,在您的应用模块build.gradle 中,您需要添加:
hilt {
enableExperimentalClasspathAggregation = true
}
Run Code Online (Sandbox Code Playgroud)
如果您在项目中使用的 Android Gradle 插件版本低于 7.0,请确保还将其添加到您的 build.gradle 文件中:
android {
...
lintOptions {
checkReleaseBuilds false
}
Run Code Online (Sandbox Code Playgroud)
通过为 androidx 刀柄添加缺失的依赖项解决了这个问题。
kapt 'androidx.hilt:hilt-compiler:1.0.0-alpha01'
Run Code Online (Sandbox Code Playgroud)
我的 gradle 文件中的其他依赖项。
implementation "androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha02"
implementation 'com.google.dagger:hilt-android:2.28-alpha'
kapt 'com.google.dagger:hilt-android-compiler:2.28-alpha'
implementation "androidx.fragment:fragment-ktx:1.2.5"
Run Code Online (Sandbox Code Playgroud)
使用 hilt 注入视图模型的 Plus 片段及其活动都被注释为 @AndroidEntryPoint
| 归档时间: |
|
| 查看次数: |
3425 次 |
| 最近记录: |