Databinding не существует: как его решить?
Я работаю над приложением Android с привязкой данных, но у меня всегда есть следующая ошибка:
Ошибка: Пакет my.package.databinding
не существует.
Вот мой build.gradle
на уровне проекта:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.2'
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Я также включил привязку в файле build.gradle
на уровне модуля.
Теперь мой вопрос: почему возникает эта ошибка и как я могу ее решить?
Ответы
Ответ 1
Эта проблема возникает, если ваш проект не компилируется. Привязка данных к базам данных должна генерировать код в именованном пакете, но он не может этого сделать, если проект не компилируется в первую очередь.
Чтобы решить эту проблему, доведите свой проект до точки, где он компилируется. Если необходимо, отключите привязку данных для этого.
Ответ 2
проверьте свои xml файлы и прокомментируйте любые @{}, которые вы использовали, если у вас на самом деле нет ваших данных. Без данных вы снова и снова будете сталкиваться с этой ошибкой.
Ответ 3
Я столкнулся с этой проблемой в проекте из 4 модулей в Android Studio 2.3, это то, что указано @F43nd1r, но хочу документировать, что я сделал, чтобы решить это в моем случае.
Один из 4-х модулей имел более старую библиотеку поддержки Android в файле Gradle, в то время как остальные 3 были текущими. Это то, что мешало проекту правильно компилироваться и вызывало ошибку привязки данных.
Трудная часть заключалась в том, что вы не знаете об этом, если не открываете каждый файл build.gradle
и не видите ли отображаемую ошибку. Он не отображал ошибку для компиляции.
Фактически я обновил эту область до более новой версии, чтобы соответствовать другим файлам 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'
...
}
Ответ 4
Основываясь на аналогичных проблемах с SO, причины могут быть не связаны с привязкой данных к андроидам, а вместо этого из-за неправильного вызова переменных, как в этой проблеме, или некоторых других факторов как в этой другой проблеме. Вы должны предоставить более подробную информацию, если ни одна из этих ссылок не помогает.
Ответ 5
dataBinding {
enabled = true
}
включил привязку данных в файле build build.gradle. его работала