简体   繁体   中英

CoroutineWorker doesn't start

I tried to run the job, but I get one error all the time. code:

    class UpdaterJob @Inject constructor(
    private val context: Context,
      workerParams: WorkerParameters
) :
    CoroutineWorker(context, workerParams) {

    override suspend fun doWork(): Result = //coroutineScope {
        withContext(Dispatchers.IO) {
            Result.success()
            //  }
        }


    companion object {
        const val TAG = "UpdateChecker"

        fun setupTask(context: Context) {
            val constraints = Constraints.Builder()
                .setRequiredNetworkType(NetworkType.CONNECTED)
                .build()

            val request = PeriodicWorkRequestBuilder<UpdaterJob>(
                1, TimeUnit.DAYS,
                1, TimeUnit.HOURS
            )
                .addTag(TAG)
                .setConstraints(constraints)
                .build()


            //  WorkManager.getInstance(context).enqueue(request)

            WorkManager.getInstance(context)
                .enqueueUniquePeriodicWork(TAG, ExistingPeriodicWorkPolicy.REPLACE, request)
        }

        fun cancelTask(context: Context) {
            WorkManager.getInstance(context).cancelAllWorkByTag(TAG)
        }
    }
}

I tried to make my DaggerWorkerFactory, by Dagger2: Unable to inject dependencies in WorkManager , but I still get one and the same error, log:

2021-02-02 13:39:15.894 7542-7542/com.rulate.rulateapp.debug E/AndroidRuntime: FATAL EXCEPTION: main Process: com.rulate.rulateapp.debug, PID: 7542 java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/work/impl/utils/futures/AbstractFuture; at androidx.work.impl.WorkManagerImpl.initialize(WorkManagerImpl.java:181) at androidx.work.WorkManager.initialize(WorkManager.java:210) at com.rulater.rulateapp.ui.App.configureWorkManager(App.kt:60) at com.rulater.rulateapp.ui.App.onCreate(App.kt:47) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1192) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6712) at android.app.ActivityThread.access$1300(ActivityThread.java:237) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913) at android.os.Handler.dispatchMessage(Handler.Z93F725A07423FE1C889F448B 33D21F46Z:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) Caused by: java.lang.ClassNotFoundException: androidx.work.impl.utils.futures.AbstractFuture at java.lang.VMClassLoader.findLoadedClass(Native Method) at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:738) at Z93F725A07423FE1C889F448B 33D21F46Z.lang.ClassLoader.loadClass(ClassLoader.java:363) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at androidx.work.impl.WorkManagerImpl.initialize(WorkManagerImpl.java:181) at androidx.work.WorkManager.initialize(WorkManager.java:210) at com.rulater.rulateapp.ui.App.configureWorkManager(App.kt:60) at com.rulater.rulateapp.ui.App.onCreate(App.kt:47) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1192) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6712) at android.app.ActivityThread.access$1300(ActivityThread.java:237) at ZC31B32364C E19CA8FCD150A417ECCE58Z.app.ActivityThread$H.handleMessage(ActivityThread.java:1913) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/common/util/concurrent/ListenableFu ture; at androidx.work.impl.WorkManagerImpl.initialize(WorkManagerImpl.java:181) at androidx.work.WorkManager.initialize(WorkManager.java:210) at com.rulater.rulateapp.ui.App.configureWorkManager(App.kt:60) at com.rulater.rulateapp.ui.App.onCreate(App.kt:47) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1192) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6712) at android.app.ActivityThread.access$1300(ActivityThread.java:237) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913) at android.os.Handler.dispatchMessage(Handler.Z93F725A07423FE1C 889F448B33D21F46Z:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.common.util.concurrent.ListenableFuture" on path: DexPathList[[zip file "/data/app/~~hUB4V6hTR0qg-4tdmVBeBg==/com.rulate.rulateapp.debug-qn72fwjfGyiwIXEoVyVyTw==/base.apk"],nativeLibraryDirectories=[/data/app/~~hUB 4V6hTR0qg-4tdmVBeBg==/com.rulate.rulateapp.debug-qn72fwjfGyiwIXEoVyVyTw==/lib/x86, /data/app/~~hUB4V6hTR0qg-4tdmVBeBg==/com.rulate.rulateapp.debug-qn72fwjfGyiwIXEoVyVyTw==/base.apk,/lib/x86, /system/lib. /system_ext/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader:java.207) at java.lang.ClassLoader.loadClass(ClassLoader:java.379) at java.lang.ClassLoader.loadClass(ClassLoader:java.312) at androidx.work.impl.WorkManagerImpl.initialize(WorkManagerImpl:java.181) at androidx.work.WorkManager.initialize(WorkManager:java.210) at com.rulater.rulateapp.ui.App.configureWorkManager(App:kt.60) at com.rulater.rulateapp.ui.App.onCreate(App:kt.47) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation:java.1192) at android.app.ActivityThread.handleBindApplication(ActivityThread:Z93F725A07423FE1C889F448B33D21 F46Z.6712) at android.app.ActivityThread.access$1300(ActivityThread:java.237) at android.app.ActivityThread$H.handleMessage(ActivityThread:java.1913) at android.os.Handler.dispatchMessage(Handler:java.106) at android.os.Looper.loop(Looper:java.223) at android.app.ActivityThread.main(ActivityThread:java.7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit:java.592) at com.android.internal.os.ZygoteInit.main(ZygoteInit:java:947)

Have you tried explicitly adding guava to your build.gradle dependencies:

implementation 'com.google.guava:guava:28.2-android'

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM