[英]Android WorkManager Worker can not be injected using Dagger Hilt `@WorkerInject`
[英]My Android app builds failed Hilt, WorkManager
我正在尝试按照参考从 Dagger2 迁移到 Hilt: https : //developer.android.com/training/dependency-injection/hilt-jetpack#workmanager
但是当我构建我的应用程序时,它失败并显示以下错误日志:
/Users/.../myapp/build/tmp/kapt3/stubs/devDebug/.../MyWorker.java:13: error: incompatible types: NonExistentClass cannot be converted to Annotation
@error.NonExistentClass()
^
这是第 13 行:
line 11 @error.NonExistentClass()
line 12 public MyWorker(@org.jetbrains.annotations.NotNull()
line 13 @error.NonExistentClass()
line 14 android.content.Context appContext, @org.jetbrains.annotations.NotNull()
line 15 @error.NonExistentClass()
line 16 androidx.work.WorkerParameters params, @org.jetbrains.annotations.NotNull()
我不知道我该如何修复它...
我使用的版本是:
// kotlin
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.5.21"
implementation "org.jetbrains.kotlin:kotlin-reflect:1.5.21"
// Hilt
implementation "com.google.dagger:hilt-android:2.35"
kapt "com.google.dagger:hilt-android-compiler:2.35"
implementation 'androidx.hilt:hilt-work:1.0.0'
kapt 'androidx.hilt:hilt-compiler:1.0.0'
// WorkManager
implementation "androidx.work:work-runtime-ktx:2.5.0"
implementation "androidx.work:work-rxjava2:2.5.0"
这些版本是最新的稳定版本。
我尝试添加以下 Gradle 设置,但它是相同的错误...
kapt {
correctErrorTypes true
}
呜呜呜呜……
我找到了原因...
对不起大家...
我是韩国人,所以一直在看这个韩文版的指导文档: https : //developer.android.com/training/dependency-injection/hilt-jetpack
但我发现它太旧了!
它指导使用@WorkerInject
在韩国版本,但它指导使用@AssistedInject
在英语版本...
当我更改它时,错误消失了......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.