Je n'ai pas eu aucune réponse satisfaisante. Voici donc les conseils qui est le résumé de ma liaison de données de connaissances.
Conseils pour diminuer coincé temps dans la liaison de données
Mise à jour
Pour obtenir plus précise des erreurs et des suggestions, je vous recommande fortement de mettre à jour Android Studio et Gradle plugin version à la dernière. Parce que je ne suis pas confrontée à de nombreux problèmes par la suite en tant QUE version 3.2.
Voir le Dernier Android Studio, et plus tard Plugin Gradle.
Originale Solution
Après la lecture de cette réponse, vous ne sera pas coincé dans la liaison de données de la génération automatique des problèmes pour les deux Classes de Données et de Variables.
Vérifiez ces points un par un. Tous ces éléments peuvent rendre votre travail terminé. Point 3 à la dernière sont vraiment important, il ne faut pas les manquer.
1. Vérifiez si la liaison de données est activé
Vous devriez avoir la liaison de données est activé en build.gradle
. Si non, alors ajouter ce et de Synchronisation.
android {
...
dataBinding {
enabled = true
}
...
}
2. Vérifier la mise en page est converti dans la liaison de mise en page
Maintenant, si vous voulez la liaison de données de la classe générée, alors vous devriez envelopper xml layout
avec la liaison de données (<layout
tag). Quelque chose comme cela.
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.constraint.ConstraintLayout>
</layout>
3. Auto-généré de Liaison nom de la classe?
Vos données de liaison de la classe doit être généré après la création de la liaison de mise en page.
Si votre mise en page nom de serpent de cas activity_main.xml
puis de liaison de données de classe
seront générés à dos de chameau cas comme ActivityMainBinding
.
4. Ne pouvez pas Voir à l'Importation Suggestion?
Parfois, lorsque vous tapez ActivityMai...
, alors qu'il ne montre pas de suggestion, dans ce cas, importer manuellement.
import <yourpackage>databinding.ActivityMainBinding;
5. Lire Build Échoue Logcat
Votre de liaison de la classe et de nouvelles variables dans la mise en page ne sera pas généré si votre échec de la construction. Donc tout d'abord créer un projet par Ctrl + F9 (Build > créer un projet).
- Si l'échec de la construction puis voir ce qui est de l'erreur, nous ont généralement des erreurs dans la mise en forme des champs. Les journaux d'erreur sera point erreur de numéro de ligne de la question.
- La liaison peut échouer à cause de certains stupide erreur, comme erreur de syntaxe ou manquant d'importation. Dans ce cas, vous obtiendrez logcat plein d'erreurs de liaison des classes. Mais vous devriez lire complet logcat pour trouver de problème.
6. Fermez et ouvrez le projet à partir des récentes
J'ai toujours le faire, car il prend beaucoup moins de temps qu' Rebuild
/ Make
du projet.
- Fermer le projet à partir d'un Fichier > Fermer le Projet
- Ouvrez de nouveau de récents
Notez que je préfère le Fermer et l'Ouvrir à partir Récente , car il prend beaucoup moins de temps que la Reconstruction / Redémarrage de l'IDE.
7. Projet De Reconstruction De
Si votre classe n'est pas généré. (Quelque temps lorsque nous coller fichier de mise en page, ça arrive). Puis Projet de Reconstruction à partir d' Build> Rebuild
(Pas de Construire ou de projet). Il va générer vos données de liaison de la classe. (Reconstruction ne de la Magie pour moi.)
8. Avez la dernière version d'Android Studio
Après la mise à jour d' Android Studio 3.2, j'ai ressenti beaucoup de bug fix dans la liaison de données de la génération automatique. Donc vous devriez également avoir plus tard.
Solution pour <variables
<data>
<variable
name="item"
type="com.package.Model"/>
</data>
Habituellement, lorsque nous mettre la variable dans la mise en page, il crée des getter et setter. Et nous pouvons utiliser l' binding.setItem(item);
et binding.getItem();
, mais si vous ne pouvez pas voir que les méthodes puis lire les informations ci-dessous.
1. Fermez et ouvrez le projet à partir des récentes
Si vous avez créé une variable de données - <variable
dans votre mise en page et il ne montre pas son setter et getter de la liaison de données de la classe, puis Fermez et Ouvrez de Récente de votre projet.
2. Nettoyage de projet après un changement de type
Si vous avez modifié le type de certains <variable
dans votre mise en page getter et setter type ne change pas alors Propre projet (Build> Clean Project
)
Les derniers mots de
Enfin, si votre classe binding n'est pas généré, puis nous avons notre arme la plus puissante. - Redémarrer Android Studio:D
- Essayez d'abord juste un redémarrage, cela donne toujours lieu à des variables de ma liaison de mise en page après le redémarrage.
- Si ne fonctionne pas, alors Invalider le Cache Et Redémarrer.
C'est tout ce que je faire pour résoudre mon de liaison de données et les erreurs. Si vous obtenez toute autre question, vous pouvez commenter ici.