Android Worker(2.8.1)结合Hilt带构造参数抛出NoSuchMethodException
求助:Hilt+WorkManager初始化Worker失败问题
我已查阅相关问题与讨论,但均无法解决当前问题,恳请各位帮忙排查问题所在。
模块级build.gradle配置
implementation 'androidx.hilt:hilt-common:1.0.0' implementation 'androidx.hilt:hilt-work:1.0.0' implementation 'androidx.startup:startup-runtime:1.1.1' implementation 'androidx.work:work-runtime-ktx:2.8.1' implementation 'com.google.dagger:hilt-android:2.44.2' kapt 'com.google.dagger:hilt-android-compiler:2.44.2' kapt 'androidx.hilt:hilt-compiler:1.0.0' kapt 'com.squareup.inject:assisted-inject-annotations-dagger2:0.6.0' implementation "androidx.work:work-multiprocess:2.9.0-alpha01" implementation 'androidx.hilt:hilt-navigation-fragment:1.0.0'
项目级build.gradle依赖配置
dependencies { classpath 'com.android.tools.build:gradle:8.0.2' classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0' classpath 'com.google.gms:google-services:4.3.15' classpath 'com.google.dagger:hilt-android-gradle-plugin:2.44.2' classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.6.0-alpha07" }
Worker实现代码
@HiltWorker class ImageUploadWorker @AssistedInject constructor( @Assisted val appContext: Context, @Assisted workerParams: WorkerParameters, private val myRepositoryImpl: MyRepositoryImpl) :CoroutineWorker(appContext,workerParams) { }
Application层代码
@HiltAndroidApp class MyApplication : Application(), Configuration.Provider { @Inject lateinit var imageUploadWorkerFactory: HiltWorkerFactory override val workManagerConfiguration: Configuration = Configuration.Builder() .setWorkerFactory(imageUploadWorkerFactory) .setMinimumLoggingLevel(android.util.Log.DEBUG) .build() }
AndroidManifest.xml配置
<provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" tools:node="remove" />
错误结果

注意事项
若从ImageUploadWorker中移除private val myRepositoryImpl: MyRepositoryImpl,初始化错误即消失。
内容的提问来源于stack exchange,提问作者ViksaaSkool
相关产品推荐
相关产品推荐

