web-dev-qa-db-fra.com

Dépendance de la liaison de données Android avec la bibliothèque de support

J'essaie de configurer la liaison de données dans mon projet Android comme suit:

dataBinding {
    enabled = true
}

Cependant, lorsque j'ajoute une dépendance à la bibliothèque de support, Lint se plaint:

Toutes les bibliothèques com.Android.support doivent utiliser exactement la même spécification de version (le mélange de versions peut entraîner des pannes à l'exécution). Versions trouvées 25.1.0, 21.0.3. Les exemples incluent 'com.Android.support:animated-vector-drawable:25.1.0' et 'com.Android.support:support-v4:21.0.3'

Lorsque je lance ./gradlew app:dependencies, j'obtiens les informations suivantes:

...
+--- 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
...

Des idées sur la façon d'empêcher le lien de se plaindre sans le désactiver?

18
ADev

Un défaut a été enregistré pour cela, ce qui a entraîné un message d'erreur plus utile: https://issuetracker.google.com/issues/37128971

La solution consiste à ajouter une dépendance explicite à support-v4 dans votre build.gradle pour la version de bibliothèque de support que vous utilisez. Par conséquent, si vous utilisez la bibliothèque de support 25.1.0:

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

Comme @gopalanrc le suggère, à partir d'Android Gradle Plugin 3.0.0, vous devez généralement utiliser les éléments suivants:

implementation 'com.Android.support:support-v4:25.1.0'
21
Uli

Si vous utilisez Gradle 3.0 ou supérieur, ajoutez-le comme ci-dessous.

implementation 'com.Android.support:support-v4:<the_version>'
0
gopalanrc