17

DataBinding a très bien fonctionné dans mon projet, Mais après la mise à niveau Android Studio 2.3 aujourd'hui. 'app' Run a échoué parce que l'erreur suivante:DataBinding ne fonctionne pas après la mise à niveau Android Studio 2.3

Error:(15, 40) Error: package com.javan.myrecorder.databinding not exist. 
import com.javan.myrecorder.databinding.FragmentEventsBinding; 
:app:compileMockDebugJavaWithJavac FAILED 

mettre à niveau juste en studio Android et n'a pas changé quoi que ce soit. tout le plugin est le dernier! Maintenant, ma question est, pourquoi se produit cette erreur et comment pourrais-je le résoudre? toute aide est la bienvenue!

L'anglais n'est pas ma langue maternelle; veuillez excuser les erreurs de ma part.


EDIT1

Comme projet Android googlesamples/android-architecture

  • git checkout todo-databinding
  • puis exécutez ./gradlew assembleDebug pour construire, construire a échoué en raison de l'erreur suivante:

complete log of build


EDIT2 J'ai résolu ce problème en suivant Data Binding broke after upgrade to Gradle 2.3.

à build.gradle(app) ajouter

apply plugin: 'com.android.application' 
apply plugin: 'com.neenbedankt.android-apt' 

..balabala 

dependencies { 
    apt 'com.android.databinding:compiler:2.3.0' 
} 

certains fichiers dans mon projet:

gradle-wrapper.properties

#Mon Mar 06 10:59:04 CST 2017 
distributionBase=GRADLE_USER_HOME 
distributionPath=wrapper/dists 
zipStoreBase=GRADLE_USER_HOME 
zipStorePath=wrapper/dists 
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip 

@petrnohejl @George Mont @ Sa-Zad Prasla, Merci!

+0

J'ai un problème similaire avec android.databinding.PropertyChangeRegistry. Cela me donne une erreur dans la déclaration d'importation et je ne peux pas compiler le projet. Quand je reviens à Build Tools 2.2.3, cela fonctionne. Je pense qu'il y a quelque chose qui ne va pas avec la liaison de données sur 2.3. – petrnohejl

+0

Voyez-vous une autre erreur? –

+0

En outre, avez-vous autre chose de différent dans votre configuration, comme apt? –

Répondre

14

android-apt et donc d'utiliser apt est obsolète depuis Android Studio 2.2
Après la android-apt migration guide, ajouter à la place ce qui suit à votre build.gradle:

dependencies { 
    annotationProcessor 'com.android.databinding:compiler:2.3.0' 
} 

Si vous utilisez Kolin, utilisez plutôt:

apply plugin: 'kotlin-kapt' 

dependencies { 
    kapt 'com.android.databinding:compiler:2.3.0' 
} 
+0

ne fonctionne pas, erreur toujours en cours. Pourquoi ? –

+0

Cela a fonctionné pour moi quand en plus de ce changement, j'ai également rétrogradé la version Gradle à 2.3.0 dépendances { classpath 'com.android.tools.build:gradle:2.3.0' } – Tushar

0

Deux choses revenir vos gradel-wrapper.properties distributionUrl à "https://services.gradle.org/distributions/gradle-2.14.1-all.zip" Changer la version gradle classpath à la version précédente " 'com.android.tools.build:gradle:2.2.3' '

PS L'exécution instantanée cessera de fonctionner sur ADT avec une ancienne version gradle.

+0

Salut @ Sa-Zad Prasla, Revenir en arrière ma version Gradle est de travail, mais pas la meilleure solution, Merci pour votre réponse. –

2

Le problème vient d'un avertissement qui est difficile à voir, parmi toutes les erreurs:

Avertissement: L'utilisation des plugins incompatibles pour le traitement d'annotation: android-apt. Cela peut entraîner un comportement inattendu.

Si vous supprimez apt, la liaison de données fonctionne.

+1

ajouter 'apt 'com.android.databinding: compilateur: 2.3.0'' to build.gradle. et maintenant tout va bien, fonctionne instantanément. être la version du compilateur de liaison de données qui provoquent l'erreur? –

1

La liaison de données a également éclaté pour nous suite à la mise à jour vers Android Studio v2.3. Le plugin GoLang Bind est devenu incapable de générer la bibliothèque .aar fichiers

Notre problème a été résolu via une combinaison de la version GoMobile "+ eb90329 7 mars 2017" mise à jour et GoBind plugin revenir à la version "0.2.6" (bien que la version actuelle est "0,2.8")

Mise à jour GoMobile:

$ go get -u -x golang.org/x/mobile/cmd/gomobile 
    $ gomobile init -x 

plug-in Revert Gobind dans build.gradle:

plugins { 
    id "org.golang.mobile.bind" version "0.2.6" 
    } 

Cette solution fonctionne sur les systèmes avec la version go 1.7.1 et 1.8 ainsi que Android Les versions Studio 2.1.2, 2.2.3 et 2.3

2

J'ai également fait face à la même question. J'utilisais ButterKnife et Dagger !!

résolu comme suit

1) Retirer du niveau d'application fichier gradle:

appliquer plugin: 'android-apt' ou appliquer plugin: 'com.neenbedankt.android-apt'

2) Retirer du niveau du projet fichier gradle:

classpath 'com.neenbedankt.gradle.plugins: android-apt: 1.8'

3) Et simplement changer "apte à annotationProcessorchange" comme les dépendances suivantes:

apt 'com.jakewharton: Butterknife compilateur: 8.5.1', ​​apt "com.google.dagger: poignard compilateur: 2.5"

Pour :

annotationProcessor 'com.jakewharton: Butterknife compilateur: 8.5.1', ​​ annotationProcessor "com.google.dagger: poignard compilateur: 2.5"

0

J'ai téléchargé trop récemment la dernière version de studio Android 2.3 .3, parce que je recevais la même erreur dans la version 2.2.3 ie Erreur: Impossible de résoudre: com.android.databinding: compilateur: 2.2.3, même dans la dernière version, je recevais la même erreur, j'ai vérifié la structure du projet, Dans le Fichier> Structure du projet> Projet, la version du plug-in Android était encore 2.2.3, je l'ai changé en 2.3.3 et la construction est réussie et tout fonctionne bien.

0

Je résolu ce problème en changeant ma version de gradle à:

classpath 'com.android.tools.build:gradle:3.0.1' 

Depuis que je suis Android Studio 3.0.1