【问题标题】:Android Architecture Components: Gradle sync error for dependency versionAndroid 架构组件:依赖版本的 Gradle 同步错误
【发布时间】:2018-10-05 08:56:40
【问题描述】:

我正在尝试将 ViewModel 和 LiveData 添加到 Kotlin 应用程序。我在模块的build.gradle 中添加了以下依赖项:

implementation "android.arch.lifecycle:extensions:1.1.1"
kapt "android.arch.lifecycle:compiler:1.1.1"
testImplementation "android.arch.core:core-testing:1.1.1"

我收到以下错误:

Android 依赖 'android.arch.lifecycle:runtime' 对于编译 (1.0.0) 和运行时 (1.1.1) 类路径有不同的版本。您应该通过 DependencyResolution 手动设置相同的版本

删除第一行 (extensions) 解决了这个问题,表明错误来自那里,但我不知道为什么。

【问题讨论】:

标签: android gradle kotlin android-architecture-components


【解决方案1】:

正如@RedBassett 提到的,支持库依赖于这个轻量级导入(运行时库),如android developers documentation 所述。

这是,由于内部 api(传递)导入,android.arch.lifecycle:runtime:1.0.0 在依赖树中传播,所以在我的情况下,我只需将扩展库包含为“api”而不是“实现”,以便它将其版本覆盖到最高版本(1.1.1)。

总之,改变

implementation "android.arch.lifecycle:extensions:1.1.1"

api "android.arch.lifecycle:extensions:1.1.1"

【讨论】:

  • 救命稻草,不知道为什么在某些地方没有记录
  • 这里一样(另一个救生员)。
  • 在更改后的构建时间方面,'api' 的效率低于 'implementation'
【解决方案2】:

在您的主要build.gradle 文件中

allprojects {
    ...

    configurations {
        all {
            resolutionStrategy {
                force "android.arch.lifecycle:runtime:1.1.1"
            }
        }
    }

}

这将强制执行版本1.1.1

【讨论】:

  • 这对我有用。我无法弄清楚较低的依赖项在哪里,因为它是旧库中的大多数 Lilley。
【解决方案3】:

显然support-v4 引起了冲突。在这个问题的情况下,Gradle 依赖任务无法正常工作,但对于遇到此问题的其他任何人:

./gradlew :app:dependencies 将显示您的依赖项使用的子依赖项。搜索此命令的输出(将 app 更改为您的模块名称)以查找导致冲突的依赖项。

【讨论】:

  • 我也是这种情况,设置上面的 resolutionStrategy 解决了问题。
【解决方案4】:

@RedBassett 是对的。但是,除了 android.arch.lifecycle 相关的子依赖项之外,我仍然遇到一些问题。

就我而言,冲突是在com.android.support:appcompat-v7:27.1.1 中引起的。

这是我的 gradle 依赖项在排除后的样子。

implementation ('com.android.support:appcompat-v7:27.1.1') {
    exclude group: 'android.arch.lifecycle'
}


api "android.arch.lifecycle:runtime:1.1.1"
kapt "android.arch.persistence.room:compiler:1.1.1"

此外,您必须在每个导入的模块中添加此排除。

【讨论】:

    【解决方案5】:

    我用@RedBassett 提到的./gradlew :app:dependencies 搜索了所有依赖项。我注意到 Gradle 抱怨的 android.arch.core:runtime 不兼容版本源于我的 com.android.support:appcompat-v7 版本,所以我刚刚将该版本更新为最新版本,一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-30
      • 2018-06-12
      • 1970-01-01
      • 2018-01-02
      • 1970-01-01
      • 2021-05-16
      • 2017-08-21
      • 2014-10-18
      相关资源
      最近更新 更多