Android架构组件:依赖版本的Gradle同步错误

时间:2018-04-25 01:35:23

标签: android gradle kotlin android-architecture-components

我正在尝试将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)修复了问题,表明错误来自那里,但我无法弄清楚原因。

5 个答案:

答案 0 :(得分:46)

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

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

总之,改变

mkdir

Microsoft.PowerShell.Core

答案 1 :(得分:17)

在您的主Office.AsyncResultStatus.Failed文件中

build.gradle

这将强制执行版本allprojects { ... configurations { all { resolutionStrategy { force "android.arch.lifecycle:runtime:1.1.1" } } } }

答案 2 :(得分:7)

显然support-v4导致了冲突。对于此问题,Gradle依赖项任务无法正常工作,但对于遇到此问题的其他任何人:

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

答案 3 :(得分:1)

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

就我而言,冲突是由{​​{1}}引起的。

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

com.android.support:appcompat-v7:27.1.1

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

答案 4 :(得分:0)

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