Классы Android DataBindingClasses не обновляются сразу

Проблема:

Я работаю над проектом, в котором теперь интегрирована привязка данных, когда я создаю новый макет или добавляю представление к существующему, он просто не отображается в объекте привязки и Я даже пытаюсь перестроить и очистить проект, но это не работает, и мне нужно просто перезапустить проект или переименовать файл макета один или два раза, чтобы обновитьBindingClass. Это так раздражает и отнимает мое важное время.

Код

build.grade

dataBinding {
    enabled = true
}

layout_file

<?xml version = "1.0" encoding = "utf-8"?>
<layout xmlns:android = "http://schemas.android.com/apk/res/android"
    xmlns:app = "http://schemas.android.com/apk/res-auto"
    xmlns:tools = "http://schemas.android.com/tools">

    <RelativeLayout
        android:id = "@+id/lyt_parent"
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content">

        <View android:id = "@+id/old_view_1" .../>
        <View android:id = "@+id/old_view_2" .../>    

        <!-- New View -->
        <View android:id = "@+id/new_view" .../>
    </RelativeLayout>
</layout>

Действие / Фрагмент / Место, где используется макет

LayoutFileBinding binding = DataBindingUtil.setContentView(this, R.layout.layout_file);
binding.newView  
// here I get error cannot resolve (newView) until i restart project or rename layout file 

Этого не произойдет до тех пор, пока вы не перестроите проект, потому что так работает Code generation . ты умеешь перестроить проект правильно? @ Умер Хан

Jeel Vankhede 13.09.2018 12:10

Вы можете rebuild проект ИЛИ close проект и re-open его

Ravindra Kushwaha 13.09.2018 12:11

Просто Rebuild Project, и вам не нужно перезапускать проект.

Tepits 13.09.2018 12:14

Вы пытались сделать кеши недействительными? Файл - »Недействительные кеши / перезапуск

gabhor 13.09.2018 12:21

@JeelVankhede да, я знаю, я пробовал, но тоже не работает.

Umer Khan 13.09.2018 12:21

Какую версию студии Android вы используете? @UmerKhan

Jeel Vankhede 13.09.2018 12:22

@UmerKhan, просто снова синхронизируй свой проект

Tara 13.09.2018 12:23
4
7
59
1

Ответы 1

Связывание данных и поддержка платформы все еще не настолько развиты, я давно использую привязку данных, все проблемы, связанные с IDE, решены, но ваша проблема чаще всего случается и со мной.

Самое быстрое решение для меня - это

  • Файл> Закрыть проект
  • Открыто из недавних

Это занимает почти 5 секунд. и генерирует все недавно добавленные классы привязки полей и макетов.

Это быстрее, чем Rebuild или Restart AS.

Другие вопросы по теме