Android数据绑定依赖与支持库冲突
Android data binding dependency conflict with the support library
我正在尝试在我的 Android 项目中设置数据绑定,如下所示:
dataBinding {
enabled = true
}
但是,当我添加支持库依赖项时,lint 抱怨:
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'
当我 运行 ./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
...
关于如何在不禁用它的情况下阻止 link 抱怨的任何想法?
为此记录了一个缺陷,导致了更有用的错误消息:https://issuetracker.google.com/issues/37128971
解决方案是在您的 build.gradle 中为您正在使用的支持库版本添加对 support-v4 的显式依赖,因此如果您使用的是支持库 25.1.0:
compile 'com.android.support:support-v4:25.1.0'
正如@gopalanrc 所建议的那样,从 Android Gradle 插件 3.0.0 开始,您通常应该使用以下内容:
implementation 'com.android.support:support-v4:25.1.0'
如果您使用的是 gradle 3.0 或更高版本,请按以下方式添加。
implementation 'com.android.support:support-v4:<the_version>'
我正在尝试在我的 Android 项目中设置数据绑定,如下所示:
dataBinding {
enabled = true
}
但是,当我添加支持库依赖项时,lint 抱怨:
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'
当我 运行 ./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
...
关于如何在不禁用它的情况下阻止 link 抱怨的任何想法?
为此记录了一个缺陷,导致了更有用的错误消息:https://issuetracker.google.com/issues/37128971
解决方案是在您的 build.gradle 中为您正在使用的支持库版本添加对 support-v4 的显式依赖,因此如果您使用的是支持库 25.1.0:
compile 'com.android.support:support-v4:25.1.0'
正如@gopalanrc 所建议的那样,从 Android Gradle 插件 3.0.0 开始,您通常应该使用以下内容:
implementation 'com.android.support:support-v4:25.1.0'
如果您使用的是 gradle 3.0 或更高版本,请按以下方式添加。
implementation 'com.android.support:support-v4:<the_version>'