简体   繁体   English

Android数据绑定依赖项与支持库冲突

[英]Android data binding dependency conflict with the support library

I'm trying to set up data binding in my Android project like so: 我正在尝试在我的Android项目中设置数据绑定,如下所示:

dataBinding {
    enabled = true
}

However, when I add a support library dependency, lint complains: 但是,当我添加支持库依赖项时,lint会抱怨:

All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). 所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。 Found versions 25.1.0, 21.0.3. 发现版本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' 示例包括'com.android.support:animated-vector-drawable:25.1.0'和'com.android.support:support-v4:21.0.3'

When I run ./gradlew app:dependencies , I get the following: 当我运行./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
...

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 为此记录了一个缺陷,从而产生了更有用的错误消息: 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: 解决方案是在build.gradle中为support-v4添加对您正在使用的支持库版本的显式依赖,因此如果您使用的是支持库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: 正如@gopalanrc建议的那样,从Android Gradle Plugin 3.0.0开始,您通常应该使用以下代码:

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

如果您使用的是gradle 3.0或更高版本,请按以下方式添加。

implementation 'com.android.support:support-v4:<the_version>'

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

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