Android数据绑定依赖与支持库冲突 [英] Android data binding dependency conflict with the support library

查看:208
本文介绍了Android数据绑定依赖与支持库冲突的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  dataBinding {
启用了我的Android项目中的数据绑定= true
}

但是,当我添加支持库依赖项时,lint抱怨: / p>


所有com.android.support库必须使用完全相同的版本规范(混合版本可能会导致运行时崩溃)。发现版本25.1.0,21.0.3。例子包括'com.android.support:animated-vector-drawable:25.1.0'和'com.android.support:support-v4:21.0.3'


运行 ./ gradlew app:dependencies 时,我得到以下结果:

  ... 
+ --- com.android.support:appcompat-v7:25.1.0
| + --- com.android.support:support-annotations:25.1.0
| + --- com.android.support:support-v4:25.1.0
| | + --- com.android.support:support-compat:25.1.0(*)
| | + --- com.android.support:support-media-compat:25.1.0
| | | + --- com.android.support:support-annotations:25.1.0
| | | \ --- com.android.support:support-compat:25.1.0(*)
| | + --- com.android.support:support-core-utils:25.1.0
| | | + --- com.android.support:support-annotations:25.1.0
| | | \ --- com.android.support:support-compat:25.1.0(*)
| | + --- com.android.support:support-core-ui:25.1.0(*)
| | \ --- com.android.support:support-fragment:25.1.0
| | + --- com.android.support:support-compat:25.1.0(*)
| | + --- com.android.support:support-media-compat:25.1.0(*)
| | + --- com.android.support:support-core-ui:25.1.0(*)
| | \ --- com.android.support:support-core-utils:25.1.0(*)
| + --- com.android.support:support-vector-drawable:25.1.0
| | + --- com.android.support:support-annotations:25.1.0
| | \ --- com.android.support:support-compat:25.1.0(*)
| \ --- com.android.support:animated-vector-drawable:25.1.0
| \ --- com.android.support:support-vector-drawable:25.1.0(*)
+ --- com.android.databinding:library:1.3.1
| + --- com.android.support:support-v4:21.0.3 - > 25.1.0(*)
| \ --- com.android.databinding:baseLibrary:2.3.0-dev - > 2.3.0-beta1
...

关于如何停止抱怨链接的任何想法而不是禁用它? 有一个记录的缺陷会导致更有用的错误信息: https://issuetracker.google.com/issues/37128971



解决方案是在您的build.gradle中为support-v4添加明确的support-v4依赖关系,因此如果您使用的是支持库25.1.0:

  compile'c​​om.android.support:support-v4:25.1.0'

正如@gopalanrc所建议的,从Android Gradle Plugin 3.0.0开始,您通常应该使用以下代码:

  implementation'com.android.support:support-v4:25.1.0'


I'm trying to set up data binding in my Android project like so:

dataBinding {
    enabled = true
}

However, when I add a support library dependency, lint complains:

All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 25.1.0, 21.0.3. Examples include 'com.android.support:animated-vector-drawable:25.1.0' and 'com.android.support:support-v4:21.0.3'

When I run ./gradlew app:dependencies, I get the following:

...
+--- com.android.support:appcompat-v7:25.1.0
|    +--- com.android.support:support-annotations:25.1.0
|    +--- com.android.support:support-v4:25.1.0
|    |    +--- com.android.support:support-compat:25.1.0 (*)
|    |    +--- com.android.support:support-media-compat:25.1.0
|    |    |    +--- com.android.support:support-annotations:25.1.0
|    |    |    \--- com.android.support:support-compat:25.1.0 (*)
|    |    +--- com.android.support:support-core-utils:25.1.0
|    |    |    +--- com.android.support:support-annotations:25.1.0
|    |    |    \--- com.android.support:support-compat:25.1.0 (*)
|    |    +--- com.android.support:support-core-ui:25.1.0 (*)
|    |    \--- com.android.support:support-fragment:25.1.0
|    |         +--- com.android.support:support-compat:25.1.0 (*)
|    |         +--- com.android.support:support-media-compat:25.1.0 (*)
|    |         +--- com.android.support:support-core-ui:25.1.0 (*)
|    |         \--- com.android.support:support-core-utils:25.1.0 (*)
|    +--- com.android.support:support-vector-drawable:25.1.0
|    |    +--- com.android.support:support-annotations:25.1.0
|    |    \--- com.android.support:support-compat:25.1.0 (*)
|    \--- com.android.support:animated-vector-drawable:25.1.0
|         \--- com.android.support:support-vector-drawable:25.1.0 (*)
+--- com.android.databinding:library:1.3.1
|    +--- com.android.support:support-v4:21.0.3 -> 25.1.0 (*)
|    \--- com.android.databinding:baseLibrary:2.3.0-dev -> 2.3.0-beta1
...

Any ideas on how to stop link from complaining without disabling it?

解决方案

There is a defect logged for this, which resulted in a more helpful error message: https://issuetracker.google.com/issues/37128971

The solution is to add an explicit dependency on support-v4 in your build.gradle for the support library version that you're using, so if you are using support library 25.1.0:

compile 'com.android.support:support-v4:25.1.0'

As @gopalanrc suggests, starting with Android Gradle Plugin 3.0.0 you should typically use the following instead:

implementation 'com.android.support:support-v4:25.1.0'

这篇关于Android数据绑定依赖与支持库冲突的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆