【问题标题】:AndroidX Error: Both old and new data binding packages are available in dependenciesAndroidX 错误:新旧数据绑定包都在依赖项中可用
【发布时间】:2019-01-16 10:07:48
【问题描述】:

我已经更新gradle.properties文件添加:

android.useAndroidX=true
android.enableJetifier=true

但我有这个错误:

e: [kapt] An exception occurred: android.databinding.tool.util.LoggedErrorException: failure, see logs for details.
AndroidX Error: Both old and new data binding packages are available in dependencies. Make sure you've setup jettifier  for any data binding dependencies and also set android.useAndroidx in your gradle.properties file.
    at android.databinding.tool.util.L.printMessage(L.java:134)
    at android.databinding.tool.util.L.e(L.java:107)
    at android.databinding.tool.Context.discoverAndroidX(Context.kt:62)

【问题讨论】:

  • 你能显示你的应用级别build.gradle吗?
  • 运气好吗?我也面临同样的问题
  • 呼应@Khemraj。 build.gradle 会有所帮助。我最近遇到了这个问题,不得不禁用 SafeArgs 库来解决它。

标签: android data-binding android-databinding androidx


【解决方案1】:

即使你enable the use of AndroidX

android.useAndroidX=true
android.enableJetifier=true

和数据绑定

android {
    ...
    ...
    dataBinding {
        enabled = true
    }

}

你仍然会遇到与依赖相关的问题。

我建议你,自动重构和更改所有必要的 Android X 导入以避免此类问题。

选择你的项目,去哟Refactor > Migrate to AndroidX

【讨论】:

    【解决方案2】:

    AndroidX 错误:新旧数据绑定包都在依赖项中可用。

    此错误表示您尚未将所有旧依赖项转换为各自的新依赖项。

    This official page 有一个工件映射列表。您需要识别旧的依赖项并将其更改为如上页映射的新依赖项。

    例如——

    com.android.support:cardview-v7 可用于 androidx.cardview:cardview:1.0.0 com.android.support:support-v4 - androidx.legacy:legacy-support-v4:1.0.0

    一旦您将所有依赖项更改为新工件,您的错误就会得到解决。 如果您需要了解 AndroidX,这里是detailed answer

    【讨论】:

    • 在我的项目被重构为通过 Android Studio 中的相应选项使用 AndroidX 后,我遇到了这个问题。它捕获了所有旧的支持库并将其替换为相应的 AndroidX 工件。我不认为是这个。 (不可否认,我的案例让 Jetifier 关闭,因为该项目使用了一个不再受支持的具有注释处理器的库。如果可以的话,我会删除它。)
    【解决方案3】:
    android.databinding.enableV2=true
    

    将此行添加到您的 gradle.properties 文件中。

    此外,您的 build.gradle (app) 文件的 sn-p 会很有帮助。

    【讨论】:

      【解决方案4】:

      如果在迁移后发生这种情况...只需删除保存生成源的 build 目录(即使所有工件都已在 build.gradle 中替换,生成的数据绑定可能仍存在于这些来源 - 导致重复警告)。

      【讨论】:

        【解决方案5】:

        就我而言,我刚刚删除了implementation 'androidx.databinding:databinding-compiler:3.5.3'

        【讨论】:

          【解决方案6】:

          我有同样的错误,当我删除这一行时它得到了解决 (实现 'androidx.databinding:databinding-compiler:3.6.0') 来自我在 app/build.gradle 中的依赖项。 希望这会有所帮助

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2019-05-04
            • 2015-12-14
            • 1970-01-01
            • 2020-12-29
            • 1970-01-01
            • 1970-01-01
            • 2015-10-04
            相关资源
            最近更新 更多