2015-12-20 5 views
13

Ich versuche, Datenbindung in Android-App zu implementieren. This ist der Link, dem ich folge, um es einzurichten. Auch nach über alle notwendigen Geräte zu tun, erhalte ich die folgende Fehlermeldung in gradle-build:Verwenden von Datenbindung in Android-Fehler: Paket *. *. Datenbindung gibt es nicht

error: package com.example.satpracticeapp.databinding does not exist.

(Dieses Paket ist das, was ich in meiner MainActivity.java Datei bin Import) Ich habe versucht this (die Daten Compiler), aber es hat nicht funktioniert.

Das Problem ist, ich habe bereits erfolgreich eine Hello-World-App mit Datenbindung versucht und es funktioniert. Aber wenn ich versuche, es in einer App zu implementieren, die ich vor ein paar Wochen gemacht habe, bekomme ich den oben erwähnten Fehler. Auf der Suche nach den Lösungen habe ich die Gradle-Dateien von meiner erfolgreichen Hello World App in meine alte App kopiert - das hat auch nicht geklappt.

Hier ist meine App-Ebene build.gradle

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.2" 

    defaultConfig { 
     applicationId "com.example.satpracticeapp" 
     minSdkVersion 16 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    dataBinding { 
     enabled = true 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:23.1.1' 
    compile 'com.android.support:design:23.1.0' 
} 

Und hier ist der buildscript der Ebene build.gradle Datei Projektes:

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:1.5.0' 
    } 
} 

Hier sind die Links zu der Minimalversion der drei Dateien (wenn es gebraucht wird)

  1. MainActivity.java
  2. ViewModel.java
  3. activity_main.xml

Nach vielen Haareziehen, ich nicht die Lösung herausfinden konnte, und die gleichen Build-Fehler immer wieder und wieder. Also, als eine temporäre Lösung, versuche ich, meine Klassen und Layouts in der Arbeit Hallo Welt-Projekt zu kopieren. Was vermisse ich?

EDIT:

Nach ein paar Stunden sinnloser Suche, ging ich zu meinem Code zurück. Überprüft es Wort für Wort und fand einen Tippfehler für den Namen einer Bindungsvariablen in der XML-Datei. Alles funktioniert jetzt gut!

+0

Ich hatte ähnliche Probleme. Es stellt sich heraus, dass Dagger 2.3 und Gradle 2.0 mit einer Datenbindungsbibliothek einige Kompilierungsfehler verursachen. Das Herunterstufen von Dolch auf 2.2 scheint in manchen Fällen hilfreich zu sein. – VsMaX

Antwort

1

Ich hatte das gleiche Problem, entpuppte sich als eine doppelte Symbol-Deklaration in einer meiner * .java-Klassen. Es wird in der Gradle-Konsole angezeigt, aber es war irgendwie unter den Datenbindungsfehlern versteckt. Ich hatte ungefähr 72 Datenverbindungsfehler und dieser doppelte Symbolfehler war in der Mitte, also ist es leicht zu übersehen.