Error package databinding does not exist

I have create one project that uses a data binding library, but whenever i use room library in my project i have found an error like follow. error: package com.example.project.databinding does not ...

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.

Already on GitHub?
Sign in
to your account


Closed

dp-2910 opened this issue

May 15, 2018

· 11 comments


Closed

Room does not work with data binding

#361

dp-2910 opened this issue

May 15, 2018

· 11 comments

Comments

@dp-2910

I have create one project that uses a data binding library, but whenever i use room library in my project i have found an error like follow.

error: package com.example.project.databinding does not exist
import com.example.project.databinding.ActivityTutorialScreenBinding;
                                      ^

error: cannot find symbol
private ActivityTutorialScreenBinding binding;
        ^
symbol:   class ActivityTutorialScreenBinding
location: class IntroducationScreen

Please help me out if any one found solution of this issue.
Thanks

mustafal, EduardoDornel, michaluu, joelc1225, sgc109, wfq, Zeliret, salexwm, RajarshiMandal, deepakbaliga, and 2 more reacted with thumbs up emoji

@EduardoDornel

@EduardoDornel

@YuganshT79

Having the same issue with Room and DataBinding 😢

@chezi

Hi, i solved the issue by creating a new module for room

@angopa

Hi, I solve this problem just fixing SQL query. The problem as that userId was incorrect,
@Query("SELECT * FROM User WHERE userId = :userId") the name of the row in the table was user_id. Just fixing that and everything works fine.

@suvojitd79

I had the same issue. After spending hours on this, I finally fixed the error by replacing LiveData<ArrayList<MovieFavEntity>> to LiveData<List<MovieFavEntity>> . Just check the return type and queries of the different method in the Dao.

@amrro

I guess this problem is related to kapt or annotationProcessor itself not room.
When the build fails, the databinding fails to generate these files too and Android Studio throws all errors to your face.

So you might need to go to the first error in the log or temporarily change kapt to annotationProcessor and rebuild to get clear error message.

@urvish91

Hello Team, I am facing the same issue which is raised. Can you please quickly look into that and fix this bug as soon as possible. as it impacts a lot for large scale project.

@sikanderbakht

After enabling data binding
«dataBinding {
enabled = true

I get
«[kapt] An exception occurred: java.lang.ExceptionInInitializerError»

@urvish91

It is working fine. you just need to use the latest versions of kotlin and room. I was also facing the issues earlier when I was also using dagger but after that when I switched to KOIN and used all latest versions it is working fine.

@ianhanniballake

This doesn’t seem to be an issue with the samples. You can file an issue against Room on the issue tracker if you’re still having an issue.

Вопрос:

DataBinding очень хорошо работал в моем проекте, но после обновления Android Studio 2.3 сегодня. Запустить “приложение” не удалось, поскольку следующая ошибка:

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

Я просто обновляю студию Android и ничего не меняю. весь плагин – последний! Теперь мой вопрос: почему возникает эта ошибка и как я могу ее решить? любая помощь приветствуется!

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


EDIT1

Как проект андроида googlesamples/android-architecture

  • git checkout todo-databinding
  • а затем запустите ./gradlew assembleDebug для сборки, выполните сбой из-за следующей ошибки:

полный журнал сборки


EDIT2 Я исправил эту проблему, выполнив Связывание данных после обновления до Gradle 2.3.

в build.gradle(app) добавить

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

..balabala

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

некоторый файл в моем проекте:

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 Mount @Sa-Zad Prasla, Спасибо!

Лучший ответ:

android-apt и, следовательно, использование apt устарело с Android Studio 2.2.
Следуя руководству по миграции на android-apt, вместо этого добавьте в свой build.gradle следующее:

dependencies {
    classpath 'com.android.tools.build:gradle:2.3.0' // use same gradle version!
    annotationProcessor 'com.android.databinding:compiler:2.3.0'
}

Если вы используете Kolin, вместо этого используйте:

apply plugin: 'kotlin-kapt'

dependencies {
    classpath 'com.android.tools.build:gradle:2.3.0' // use same gradle version!
    kapt 'com.android.databinding:compiler:2.3.0'
}

Ответ №1

Проблема возникает в предупреждении, которое трудно увидеть среди всех ошибок:

Предупреждение: использование несовместимых плагинов для обработки аннотации: android-apt. Это может привести к неожиданному поведению.

Если вы удалите apt, работает привязка данных.

Ответ №2

Я также столкнулся с той же проблемой.
Я использовал ButterKnife и Dagger !!

Решено как следует

1) Удалить из файла Gradle уровня приложения:

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

2) Удалить из файла Gradle уровня проекта:

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

3) И просто измените “apt на annotationProcessor” следующим образом:

 apt 'com.jakewharton:butterknife-compiler:8.5.1',
apt "com.google.dagger:dagger-compiler:2.5"

To:

annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1',
annotationProcessor "com.google.dagger:dagger-compiler:2.5"

Ответ №3

Связывание данных также сломалось для нас после обновления до Android Studio v2.3. Плагин GoLang Bind стал неспособным генерировать библиотеки .aar файлов

Наша проблема была решена с помощью комбинации версии GoMobile версии “+ eb90329 от 7 марта 2017”, и плагин GoBind вернется к версии “0.2.6” (хотя текущая версия “0.2.8” )

Обновить GoMobile:

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

Вернуть плагин GoBind в build.gradle:

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

Это решение работает с системами с версиями 1.7.1 и 1.8, а также версиями Android 2.1.2, 2.2.3 и 2.3.

Ответ №4

Две вещи
Верните назад свой каталог gradel-wrapper.propertiesUrl в “https://services.gradle.org/distributions/gradle-2.14.1-all.zip”
Измените путь класса версии gradle к предыдущей версии “‘com.android.tools.build:gradle:2.2.3′”

P.S. Мгновенный запуск прекратит работу с ADT со старой версией gradle.

Ответ №5

Я тоже недавно загрузил последнюю версию Android 2.3.3, потому что я получал ту же ошибку в версии 2.2.3, т.е. Ошибка: не удалось разрешить: com.android.databinding: компилятор: 2.2.3, даже в последней версии, я получал ту же ошибку, я проверил структуру проекта. В Файл > Структура проектa > Проект версия Android Plugin была все еще 2.2.3, Я изменил его на 2.3.3, и сборка прошла успешно, и все работает плавно.

Ответ №6

Я решил эту проблему, изменив мою версию gradle на:

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

Поскольку я использую Android Studio 3.0.1

Я пытаюсь использовать привязку данных с 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

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

Понравилась статья? Поделить с друзьями:
  • Error ora 16737 the redo transport service for standby database has an error
  • Error loading wnaspi32 dll epsxe
  • Error opening registry key software javasoft java runtime environment что делать
  • Error loading widget перевод
  • Error opening registry key software javasoft java runtime environment minecraft