我正在尝试将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
)修复了问题,表明错误来自那里,但我无法弄清楚原因。
答案 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
版本造成的,所以我只是将该版本更新为最新版本,一切正常。