Je travaille sur une application Android avec liaison de données, mais j'ai toujours l'erreur suivante:
Erreur: Le package
my.package.databinding
n'existe pas.
Voici mon build.gradle
au niveau du projet:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.Android.tools.build:gradle:2.2.2'
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
J'ai également activé la liaison dans le fichier build.gradle
au niveau du module.
Maintenant, ma question est la suivante: pourquoi cette erreur se produit-elle et comment puis-je la résoudre?
Ce problème se produit généralement si votre projet ne compile pas. La liaison de données Android devrait générer du code dans le paquet nommé, mais elle ne le peut pas si le projet ne se compile pas.
Pour résoudre ce problème, amenez votre projet à un point où il se compile. Si nécessaire, désactivez la liaison de données pour cela.
vérifiez vos fichiers XML et commentez tous les @ {} que vous avez utilisés, à moins que vos données ne soient réellement à portée de main. Sans données, vous rencontrerez encore et encore cette erreur.
Je suis tombé sur ce problème dans un projet de 4 modules dans Android Studio 2.3, c'est ce que @ F43nd1r a indiqué, mais je souhaite documenter ce que j'ai fait pour résoudre ce problème dans mon cas.
L'un des 4 modules contenait une ancienne bibliothèque de support Android dans le fichier Gradle, alors que les 3 autres étaient à jour. C'est ce qui a empêché le projet de compiler correctement et de provoquer l'erreur de liaison de données.
La partie difficile était que vous ne le saviez pas à moins d’ouvrir chaque fichier build.gradle
et de voir s’il y avait une erreur affichée. Il n'a pas montré d'erreur pour compiler.
J'ai effectivement mis à jour cette zone avec le numéro de version le plus récent pour qu'il corresponde aux 3 autres fichiers build.gradle
du module.
dependencies {
...
compile 'com.Android.support:appcompat-v7:25.2.0'
compile 'com.Android.support:support-v4:25.2.0'
compile 'com.Android.support:recyclerview-v7:25.2.0'
compile 'com.Android.support:design:25.2.0'
...
}
dataBinding {
enabled = true
}
activé la liaison de données dans le fichier build.gradle de l'application. c'est travaillé
Pour voir l'erreur, éditez simplement ces lignes de code dans le fichier build.gradle de l'application:
dataBinding {
enabled = false
}
De cette manière, la dernière erreur dans votre console de génération est l’erreur réelle. Parce que de la première à l’avant-dernière erreur, ils sont tous liés à la non-génération des classes de liaison de données, précisément parce que nous l’avons désactivée.
Une fois que vous avez trouvé l'erreur, vous entrez à nouveau:
dataBinding {
enabled = true }
Sur la base de problèmes similaires sur SO, les raisons peuvent ne pas être liées à la liaison de données Android, mais plutôt à des appels de variables incorrects, comme dans ce issue ou à d’autres facteurs tels que cet autre problème . Vous devriez fournir plus de détails si aucun de ces liens ne vous aide.