Android Studio ne parvient pas à générer de la liaison de données après la mise à jour 3.1.0
Ce matin, j'ai fait une mise à jour de android studio
de 3.0.1 à 3.1.0. Après la mise à jour de la gradle
à la dernière version, je reçois toujours construire erreur en ce qui concerne la liaison de données.
Mon gradle-wrapper.properties
:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
Toutes mes erreurs comme celle ci-dessous:
/Users/mp/Documents/GitHub/projectx/app/build/generated/source/dataBinding/baseClasses/Staging/debug/me/projectx/asdasd/databinding/GridItemActivityTypeBinding.java:57: error: cannot find symbol
@Nullable DataBindingComponent component) {
^
symbol: class DataBindingComponent
location: class GridItemActivityTypeBinding
Quelqu'un a une idée pourquoi mon la liaison de données génère pas d'après le android studio 3.1 mise à jour? Merci d'avance
Edit 1: j'ai Oublié de dire, j'ai essayé de nettoyer/reconstruction/invalider le cache & restart/supprimé dossier de création.
- As-tu fait un nettoyage/reconstruction?
- Essayé de nettoyer/reconstruction/invalider le cache & restart/supprimé dossier de création.
Vous devez vous connecter pour publier un commentaire.
À la suite de la mise à jour Android Studio 3.2, cette ligne fonctionne pour moi. J'ai à la fois de Java et de Kotlin code (compilateur) dans mon projet.
Ajouter les éléments suivants à votre gradle.propriétés:
android.la liaison de données.enableV2=false
Raison:
source (Note de Version): https://developer.android.com/studio/releases/
si vous êtes à l'aide de kotlin sur android studio 3.2 ,
remplacer le distributionurl avec cette ligne
et il vous sera demandé de changer les outils de construction de la version de la apprpriate version.
une fois que vous avez fait cela , supprimez cette ligne à partir de l'app niveau de la construction.gradle fichier
et de construire le projet. il a travaillé pour moi.
Cela pourrait ne pas être la meilleure réponse, mais dans mon cas, cela a été causé par un complètement problème indépendant dans mon code.
J'ai été reçu 51
error: cannot find symbol: DataBindingComponent
des erreurs (dans chaque Liaison de Données générées classe), et j'ai passé les âges retrait des modifications à mon XML et ViewModel code à essayer de trouver ce qui la causait.Le problème réside dans un invalide de changement, j'ai fait un modèle de la Salle. Je suppose qu'une Salle d'erreur peut avoir été occulté par tous les databinding erreurs, mais le Debug/journaux d'Analyse dans le terminal n'a pas de point à elle.
Donc revoir tous les derniers code, même apparemment sans rapport avec les changements si vous rencontrez ce problème.
Edit: Voir ce DONC, après les sur ces databinding erreurs d'affaiblir les autres kapt questions (comme la Chambre ou la Dague)
Vous avez besoin de changer trois choses lorsque vous mettez à jour à partir d'Android Studio 3.0.1 à 3.1.0. C'est comme indiqué ci-dessous
1) Vous avez besoin de changer dans gradle.wrapper-propriétés dans distributionUrl. Votre URL doit être distributionUrl=https://services.gradle.org/distributions/gradle-4.4-all.zip
Pour
2) le Besoin de mettre à jour les données de liaison de dépendance dans l'app niveau gradle fichier de kapt 'com.android.de liaison de données:compilateur:3.0.1 " pour kapt 'com.android.de liaison de données:compilateur:3.1.0'
Et si vous développer à l'aide de kotlin puis,
3) la Troisième et dernière chose est besoin de mettre à jour kotlin gradle plug dans chemin de classe "org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.30" à chemin de classe "org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.31" au niveau du projet gradle de dépendance. Aussi, vous pouvez mettre à jour de build gradle version comme on le voit dans l'image ci-dessous.
après tout, au-dessus de l'étape juste propre à construire et à reconstruire projet. Espérons que cela fonctionnera pour résoudre votre problème.
Merci!!
Amusez-vous bien!!
Ok, donc ceux qui se demandent comment j'ai résolu ce.
La solution est assez simple, mais sans doute vous ne l'aimez pas.
J'ai dû passer toutes mes classes, qui ont été utilisés dans la liaison de données dans le projet de package racine et après il a commencé à travailler à nouveau.
Pour corriger cette erreur dans le projet Java vous shouild restauration à supportLibraryVersion -
27.0.2
de27.1.0
Fonctionne très bien avec AndroidStudio 3.1 et
com.android.tools.build:gradle:3.1.0
Attente d'un correctif de la Google
Non de ces solutions n'a fonctionné pour moi donc, j'ai découvert sa bug en 3.2 beta 4 de la version d'android studio:
après ce que j'ai de synchronisation, de reconstruire et d'exécuter everyting correctement
J'ai eu le même problème que @Marian Pavel où mon projet n'arrivais pas à compiler le databinding composants si je n'avais pas la classe c'est utilisé dans la liaison de données dans le dossier racine.
J'ai résolu le problème en faisant ceci:
Android Studio: 3.2.1 stable
gradle.properties
et puis en mesure de Trouver le Modèle de la salle de classe d'erreur. J'ai supprimé cette ligne après la rectification de problème. Je suis en utilisant le Android version Studio comme mentionné dans la réponse ci-dessus.Ajouter ces lignes dans le grade.propriétés aidé à me sauver la question
J'ai eu cette erreur après avoir fait quelques modifications dans la Salle les classes d'Entité. Je pense donc que Cette erreur est en quelque sorte lié à la Salle de la bibliothèque. Essayez de rétablir les modifications dans la Chambre et des classes d'entités ou de les commenter pour voir si l'erreur est corrigée.
Dans mon cas, l'apparition de l'erreur, parce que j'étais de retour
int
d'insertion et de méthodes de mise à jour. Ces méthodes ne devraient pas retourner quoi que ce soit. Donc supprimerreturn
correction de l'erreur.à
Juste Commenter ces lignes dans
graddle-wrapper.properties
fichier m'a aidé à résoudre mon problèmeJ'ai eu le même problème. Il fixe par l'ajout de google() pour le Projet de construction.gradle
assurez-vous d'ajouter dans allProjects
C'est très difficile de bug avec android studio et la liaison de données! J'ai eu à tester tout cela proposé des solutions et un peu plus pour toute une journée pour enfin faire le databinding compiler au moins.
Donc j'ai dû désactiver tous les databindind paramètres dans
gradle.properties
fichier, il suffit de commenter ces lignes ou les supprimer:supprimer
buildToolsVersion
debuild.gradle
et avoir les versions du sdk suivantes:Plus un couple plus propre/reconstruction d'invalider les caches et redémarrer, et il a FINALEMENT compilé.
Alors QUE les ingénieurs sont très à la création de bugs!
Vérifier vos fichiers xml si vous utilisez la liaison de données.
J'ai perdu une heure d'aujourd'hui parce que j'ai renommé une classe et Android Studio a décidé de faire des changements dans mon fichiers xml.
Par exemple, j'ai eu une classe nommée LiveGameModel et j'ai renommé à LiveGameView et a décidé d'apporter des modifications dans des fichiers xml qui ne sont pas liés à ce point de vue. Je sais, ce bug n'a pas de sens.
Ceci peut paraître étrange, mais j'ai perdu quelques heures face à l'erreur et après une inspection dans mes derniers changements, j'ai trouvé que c'était une erreur dans la Chambre de la base de données.
J'ai déclaré l'un de l'interface Dao, mais j'ai oublié de anotate avec
@Dao
.Après la fixation de la liaison de données erreur a été corrigée.
Je suppose que c'est un bug d'android studio.
@Dao
ne l'ai pas fait pour moi.TOUT D'ABORD
1. ajouter "mise en page" à la racine de votre mise en page
privé lateinit var reliure:ActivityLoginBinding
//setContentView(R. layout.activity_login)
liaison = DataBindingUtil.setContentView(ce@LoginActivity,R. layout.activity_login)
Dans le gradle.les propriétés d'ajouter:
android.databinding.enableV2=true
Dans la construction.gradle(module:app) ajout de fichiers:
dataBinding {enabled = true}
Propre projet et rebuid il.
Il va commencer à travailler...
J'ai eu cette mise à jour gradle pour 3.4.2. Tout ce que vous devez faire est de supprimer l'instruction import de java.lang. Ci-dessous l'écran de court à partir de Google docs
J'ai eu le même problème. J'ai désactivé la liaison de données dans gradle propriétés, et il a travaillé.
dataBinding.enabled = false