2016-11-05 9 views
10

pracuję nad Android aplikacji z wiązania z danymi, ale ja zawsze następny błąd:databinding nie istnieje: jak go rozwiązać?

Error: Package my.package.databinding does not exist.

Oto moja build.gradle na poziomie projektu:

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.2.2' 
    } 
} 
allprojects { 
    repositories { 
     jcenter() 
    } 
} 
task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

Ja również włączone w wiążący build.gradle plik na poziomie modułu.

Teraz moje pytanie brzmi, dlaczego pojawia się ten błąd i jak mogę go rozwiązać?

Odpowiedz

13

Ten problem występuje zwykle, jeśli projekt nie jest kompilowany. Wiązanie danych Androida powinno generować kod w podanym pakiecie, ale nie może tego zrobić, jeśli projekt nie zostanie skompilowany w pierwszej kolejności.

Aby rozwiązać ten problem, przenieś projekt do punktu, w którym się on kompiluje. Jeśli to konieczne, wyłącz opcję databinding.

1

W oparciu o podobne problemy z SO, przyczyny mogą nie być związane z powiązaniem danych Androida, a zamiast tego z powodu nieprawidłowego wywoływania zmiennych, jak w tym issue lub innych czynników, takich jak ten other issue. Powinieneś podać więcej szczegółów, jeśli żaden z tych linków nie pomaga.

2

Natrafiłem na ten problem w projekcie złożonym z 4 modułów w Android Studio 2.3, to jest to, co wskazał @ F43nd1r, ale chcę udokumentować, co zrobiłem, aby rozwiązać ten problem w moim przypadku.

Jeden z 4 modułów miał starszą bibliotekę pomocy Androida w pliku Gradle, podczas gdy pozostałe 3 były aktualne. To właśnie uniemożliwiło prawidłowe kompilowanie projektu i spowodowało błąd związany z wiązaniem danych.

Trudne było to, że nie wiesz o tym, chyba że otworzysz każdy plik build.gradle i zobaczysz, czy jest wyświetlany błąd. NIE wyświetlał błędu podczas kompilacji.

Skutecznie zaktualizowałem ten obszar do nowszej wersji, aby pasował do innych plików z 3 modułami build.gradle.

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' 
    ... 
} 
+0

Definiowanie wersji biblioteki pomocniczej w pliku build.gradle na poziomie projektu ułatwiłoby synchronizację modułów – Heinrich

3

Sprawdź swoje pliki xml i skomentuj dowolne @ {} używane, chyba że masz już gotowe dane pod ręką. Brak danych powoduje wielokrotne pojawianie się tego błędu.

0
dataBinding { 
    enabled = true 
} 

włączyła powiązanie danych w pliku build.gradle aplikacji. jego praca

Powiązane problemy