簡體   English   中英

WorkManager: java.lang.VerifyError: Verifier rejected class androidx.work.impl.OperationImpl

[英]WorkManager: java.lang.VerifyError: Verifier rejected class androidx.work.impl.OperationImpl

我正在嘗試恢復舊代碼庫。

在其中一項活動中,下面代碼片段中表示的enqueue()調用使應用程序不斷崩潰:

WorkManager
    .getInstance(requireContext())
    .enqueue(updateValues) // updateValues is a WorkRequest

這是例外:

java.lang.VerifyError:驗證者拒絕 class androidx.work.impl.OperationImpl:com.google.common.util.concurrent.ListenableFuture androidx.work.impl.OperationImpl.getResult() 無法驗證:com.google.common.util. .concurrent.ListenableFuture androidx.work.impl.OperationImpl.getResult(): [0x2] 無法解析返回的類型 'Unresolved Reference: com.google.common.util.concurrent.ListenableFuture' 或 'Unresolved Reference: androidx.work. impl.utils.futures.SettableFuture'('androidx.work.impl.OperationImpl'的聲明出現在/data/app/~~KoZa3Uwv5hinF_EqVv8JEA==/com.ulesson.tutor.uat-YOfhXEvtwlYyJ7ihgXtB_A==/base.apk)

我有:

  • 將 WorkManager 的依賴版本更新為最新版本2.8.0-alpha02
  • 將 minSdk 更新為 21(從 19)
  • 使用 JDK 11
  • 將 TARGET_SDK 和 COMPILE_SDK 升級到 31
  • 升級Kotlin版本到1.6.0
  • 使緩存無效並重新啟動

..但崩潰仍然存在。

這是updateValues工作請求:

private val updateValues: WorkRequest by lazy {
    OneTimeWorkRequestBuilder<UpdateValuesWorker>()
        .setConstraints(
            Constraints
                .Builder()
                .setRequiredNetworkType(NetworkType.CONNECTED)
                .build()
            )
        .setBackoffCriteria(
            BackoffPolicy.EXPONENTIAL,
            5,
            TimeUnit.MINUTES
        )
        .build()
}

UpdateValuesWorker只是進行常規的 API 調用。

我承認,這個解決方案有點奇怪。

我的第一步是將 WorkManager 和協程的依賴版本更新到最新版本(如問題詳細信息中所述)。 之后,我更新了我的AndroidManifest.xml文件中的 provider<> 標簽:

<provider
    android:name="androidx.work.impl.WorkManagerInitializer"
    android:authorities="${applicationId}.workmanager-init"
    tools:node="remove" />

對此:

<provider
    android:name="androidx.startup.InitializationProvider"
    android:authorities="${applicationId}.androidx-startup"
    android:exported="false"
    tools:node="merge" />

之后,一切正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM