【问题标题】:WorkManager v1 and v2 conflictWorkManager v1 和 v2 冲突
【发布时间】:2019-06-08 13:15:12
【问题描述】:

我使用 androidX 包中的WorkManager 版本 2

我还使用 另一个使用 WorkManager v1 的库,它位于 Arch 组件 包中。

当我同步项目时,同步成功完成,但是当我尝试构建项目时。我收到以下错误,提示您有重复的值。

我在我的 Gradle 中使用的版本:
"androidx.work:work-runtime-ktx:2.0.1"

添加到的版本:
'android.arch.work:work-runtime-ktx:1.0.1'

错误

Duplicate class androidx.work.ArrayCreatingInputMerger found in modules classes.jar (android.arch.work:work-runtime:1.0.0-rc01) and classes.jar (androidx.work:work-runtime:2.0.1)
Duplicate class androidx.work.BackoffPolicy found in modules classes.jar (android.arch.work:work-runtime:1.0.0-rc01) and classes.jar (androidx.work:work-runtime:2.0.1)
Duplicate class androidx.work.Configuration found in modules classes.jar (android.arch.work:work-runtime:1.0.0-rc01) and classes.jar (androidx.work:work-runtime:2.0.1)
Duplicate class androidx.work.Configuration$Builder found in modules classes.jar (android.arch.work:work-runtime:1.0.0-rc01) and classes.jar (androidx.work:work-runtime:2.0.1)
...

我也将这些添加到我的gradle.properties:

android.useAndroidX=true
android.enableJetifier=true

【问题讨论】:

  • 您能否考虑请求库的作者更新他们的库以支持 AndroidX 版本的 WorkManager?
  • 我想这将是最后的解决方案。还有其他解决方法吗?
  • AFAIK,我认为没有其他方法可以绕过这个问题。
  • 为什么没有build.gradle 依赖?这应该很容易回答。
  • 您需要什么信息?

标签: android androidx android-workmanager


【解决方案1】:

如果您不想依赖第三方库,您可以简单地将其排除从该库中。

在您的情况下,您可以排除 android.arch 工作经理并添加您自己的 androidX 工作经理。

类似于:

implementation('your_library') { 
    exclude group :'android.arch.work:work-runtime-ktx'
}

【讨论】:

    【解决方案2】:

    冲突是因为两个workmanager依赖。尝试删除第二个,即android.arch.work:work-runtime-ktx:1.0.1。并根据androidx 版本迁移您的代码

    【讨论】:

    • 这就是问题所在。版本 1 由库使用,我无权修改它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-04
    • 2010-12-07
    • 2010-10-16
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    相关资源
    最近更新 更多