首页 > 解决方案 > Android 架构组件:依赖版本的 Gradle 同步错误

问题描述

我正在尝试将 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) 解决了这个问题,表明错误来自那里,但我不知道为什么。

标签: androidgradlekotlinandroid-architecture-components

解决方案


正如@RedBassett 提到的那样,支持库依赖于这个轻量级导入(运行时库),如android 开发人员文档中所述。

也就是说,由于内部 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"

推荐阅读