Подтвердить что ты не робот

Android Databinding: пакет не существует

Я пытаюсь использовать привязку данных с Android.

Я не могу больше строить свой проект. Я получил эту ошибку:

"Ошибка: (13, 46) ошибка: пакет ch.company.project.databinding не существует"

Вот мой gradle:

http://pastebin.com/dkXd1Mxr

а также

http://pastebin.com/n9hkFWGQ

И вот выходной сигнал:

https://pastebin.com/w93Rausg

4b9b3361

Ответ 1

Спасибо Yigit!

Проблема не была связана с привязкой данных Android. В проекте была ошибка (некоторые переменные установлены неправильно)

Я бы порекомендовал использовать gradle с "--debug и --stacktrace" для получения дополнительной информации, это очень помогает.

Ответ 2

Ошибка - это не пакет DataBinding, это синтаксическая или логическая ошибка. Например, у вас есть атрибут "lastName" в вашем POJO, но в макете это android:text="@{user.lastname}".

Проверьте свой "макет" и сделайте Rebuild Project.

Ответ 3

Я не удовлетворен принятым ответом, который говорит вам, чтобы вы могли отслеживать трассировку без подсказок.

Вот некоторые возможные причины, которые приводят к этой проблеме. Проверьте, не выполняете ли вы что-либо из следующего.

В принципе Android DataBinding не то, что созревает до сих пор. Он будет без ошибок много раз.

Так что если у вас есть проблема, такая как package ch.company.project.databinding does not exist".

Возможные причины сбоя:

  • Прежде всего, проверьте ваши недавно отредактированные макеты XML по одной на наличие ошибок (для неправильного imports и variables). Я обычно не получаю правильную ошибку в этом случае.
  • Проверьте синтаксис привязки данных в блоке привязки ({...}) в элементе макета на наличие ошибок. Всегда перестраивать (не строить) проект после работы в одном макете.
  • Проверьте свой метод @BindingAdapter имеющий правильные параметры. Например, imageUrl привязки imageUrl примет ImageView или View качестве первого параметра.
  • Вы должны всегда перестраивать проект после выполнения работы в одном макете.

  • Если вы не можете найти ошибки с помощью вышеуказанных шагов, попробуйте --debug and --stacktrace в опции компиляции

    File> Settings> Build, Execution, Deployment> Compiler> Command-line Options

Ответ 4

У меня были схожие проблемы с моим проектом

Вы можете попробовать:

  • проверить файлы xml для ошибок, которые вызывают сбои сборки
  • чистый проект
  • Файл - недействительный кеш/перезапуск

Ответ 5

В моем конкретном случае я использовал Dagger 2. Эта ошибка пакета появляется во многих классах без какой-либо связи с исходной ошибкой: ошибка впрыскивания зависимостей.

Счастливое напоминание: прокрутите еще раз на свой стек, чтобы узнать, в чем проблема.

Ответ 6

Я застрял с той же ошибкой в течение нескольких часов. Попробовав несколько решений из stackoverflow, я обновил свой проект со стабильными зависимостями gradle.

Тем не менее это не было решено, однако с той же зависимостью gradle отлично работало DataBinding в другом моем проекте.

Итак, я пошел в папку проекта с помощью проводника и удалил 2 вещи.

  1. создать папку
  2. все файлы из .idea/library

После этого я синхронизировал проект, и он продолжал работать просто отлично.

Ответ 7

Я получил ошибку:

Ошибка: (9, 46) ошибка: пакет com.company.www.bar.databinding не существуют.

я просто удаляю знак "=". это сработало для меня

Из этого:

 <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:onClick="@={()->activity.onButtonClick()}"/>

to:

<Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:onClick="@{()->activity.onButtonClick()}"/>

Ответ 8

Убедитесь, что в ваших образцовых полях, которые вы указали в макете, есть public модификаторы доступа

Ответ 9

Чтобы избавиться от этой ошибки, просто приложите полный дизайн макета внутри простого тега макета в файле activity_main.xml.

Потеряв много часов в поиске решения, это сработало для меня. Попробуйте.

Ответ 10

Убедитесь, что название вашего пакета начинается со строчной буквы. в моем случае проблема решена после двух часов борьбы