繁体   English   中英

我如何解决android.arch.lifecycle:常见的版本冲突?

[英]How Do I Resolve android.arch.lifecycle:common Version Conflicts?

给定具有这组依赖项的项目:

dependencies {
  compile "com.android.support:recyclerview-v7:26.1.0"
  compile "com.android.support:support-core-utils:26.1.0"
  compile "com.android.support:support-fragment:26.1.0"
  compile 'io.reactivex.rxjava2:rxjava:2.1.3'
  compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
  compile 'android.arch.lifecycle:runtime:1.0.0'
  compile 'android.arch.lifecycle:extensions:1.0.0-beta2'
  compile 'android.arch.lifecycle:reactivestreams:1.0.0-beta2'
  compile "android.arch.persistence.room:runtime:1.0.0-beta2"
  compile "android.arch.persistence.room:rxjava2:1.0.0-beta2"
  annotationProcessor "android.arch.persistence.room:compiler:1.0.0-beta2"
  androidTestCompile "com.android.support:support-annotations:26.1.0"
  androidTestCompile 'com.android.support.test:rules:0.5'
  androidTestCompile 'android.arch.core:core-testing:1.0.0-beta2'
  androidTestCompile "com.android.support:support-core-utils:26.1.0"
  androidTestCompile "com.android.support:support-compat:26.1.0"
}

我收到以下错误:

错误:与项目':app'中的依赖项'android.arch.lifecycle:common'冲突。 app(1.0.2)和测试app(1.0.0)的已解决版本不同。 有关详细信息,请参阅http://g.co/androidstudio/app-test-app-conflict

我该如何解决这个问题?

工件依赖性不一致是一个常见问题,我认为这是架构组件的常见问题,因为这些组件的版本控制是拜占庭1

在这种情况下,有一个未记录的版本1.0.2的未记录的android.arch.lifecycle:common工件。

android.arch.lifecycle:extensions:1.0.0-beta2android.arch.lifecycle:reactivestreams:1.0.0-beta2依赖于未记录的android.arch.lifecycle:common工件的未记录版本1.0.2 但是,相应的测试工件( android.arch.core:core-testing:1.0.0-beta2 )取决于android.arch.lifecycle:common 1.0.0版本android.arch.lifecycle:common 结果,我们得到了冲突。

解决方法是通过以下方式手动请求1.0.2测试代码:

androidTestCompile 'android.arch.lifecycle:common:1.0.2'

Gradle现在将使用1.0.2作为主代码和测试代码,一切都很好。


1 “拜占庭”一词用于描述不必要的复杂事物。 拜占庭人可能用“像架构组件的版本控制系统”这样的短语描述了复杂的东西,如果这些组件存在的话。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM