NoSuchMethodException in Benachrichtigungen mit Hilt und Workmanager (Kotlin, Hilt 2.56.2, Workmanager 2.9.0)Android

Forum für diejenigen, die für Android programmieren
Anonymous
 NoSuchMethodException in Benachrichtigungen mit Hilt und Workmanager (Kotlin, Hilt 2.56.2, Workmanager 2.9.0)

Post by Anonymous »

Ich verwende den Hilt mit WorkManager, um Benachrichtigungen im Hintergrund in meiner Anwendung zu synchronisieren, aber ich begegne einen Java.lang.NosuchMethodException Fehler beim Versuch, eine Instanz von NotificationsSyncworker zu erstellen. Es scheint, dass ich alles richtig eingerichtet habe, aber mir fehlt etwas. Bitte helfen Sie mir, herauszufinden, wo der Fehler ist, oder sagen Sie mir, wie Sie am besten debuggen!

Code: Select all

2025-07-10 13:35:31.107  7160-7238  WM-WorkerFactory    com.android.tracker_mobile   E  Could not instantiate com.android.tracker_mobile.data.worker.NotificationSyncWorker
java.lang.NoSuchMethodException: com.android.tracker_mobile.data.worker.NotificationSyncWorker. [class android.content.Context, class androidx.work.WorkerParameters]
at java.lang.Class.getConstructor0(Class.java:3395)
...
2025-07-10 13:35:31.107  7160-7238  WM-WorkerWrapper    com.android.tracker_mobile   E  Could not create Worker com.android.tracker_mobile.data.worker.NotificationSyncWorker
Project Configuration
  • Language: Kotlin 2.1.21
  • Hilt:

    Code: Select all

    com.google.dagger:hilt-android:2.56.2
    (ksp)
  • Code: Select all

    androidx.hilt:hilt-work:1.0.0
    (Kapt)
  • Code: Select all

    androidx.hilt:hilt-compiler:1.0.0
    (Kapt)
[*] WorkManager : androidx.work:work-Runtime-KTX:2.9.0
< /li>
< /ul>
build.gradle.KTS
>>

Code: Select all

plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
alias(libs.plugins.ksp)
id("com.google.dagger.hilt.android")
id("kotlin-kapt")
}

dependencies {
implementation(libs.hilt.android)
ksp(libs.hilt.compiler)
implementation(libs.hilt.navigation.compose)
implementation(libs.androidx.work.runtime.ktx)
implementation(libs.androidx.hilt.work)
kapt(libs.androidx.hilt.work.compiler)
}
< /code>
 undroidManifest.xml

< /code>
 Anwendungsklasse < /h3>
@HiltAndroidApp
class TrackerApplication : Application(), Configuration.Provider {
@Inject lateinit var workerFactory: HiltWorkerFactory

override val workManagerConfiguration: Configuration
get() = Configuration.Builder()
.setWorkerFactory(workerFactory)
.build()
}
< /code>
 meldificationsyncworker < /h3>
@HiltWorker
class NotificationSyncWorker @AssistedInject constructor(
@Assisted context: Context,
@Assisted params: WorkerParameters,
private val notificationDao: NotificationDao,
private val notificationApi: NotificationApi
) : CoroutineWorker(context, params) {
companion object { const val WORK_NAME = "NotificationSyncWorker" }

override suspend fun doWork(): Result = withContext(Dispatchers.IO) {
try {
val pending = notificationDao.getPendingSyncNotifications()
if (pending.isEmpty()) return@withContext Result.success()
// synchronization logic
Result.success()
} catch (e: Exception) {
Result.retry()
}
}
}
< /code>
 Planen des Arbeiters < /h3>
fun scheduleSyncWorker(context: Context) {
val constraints = Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.build()

val workRequest = OneTimeWorkRequestBuilder()
.setConstraints(constraints)
.build()

WorkManager.getInstance(context).enqueueUniqueWork(
NotificationSyncWorker.WORK_NAME,
ExistingWorkPolicy.KEEP,
workRequest
)
}
Was ich ausprobiert habe

Entfernte Standard WorkmanagerInitializer aus dem Manifest. Hilt. /> < /li>
Könnte es einen Konflikt zwischen KSP und Kapt geben? /> < /li>
< /ol>
Ich würde mich über Hinweise freuen! < /P.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post