Проблема:
Я работаю над проектом, в котором теперь интегрирована привязка данных, когда я создаю новый макет или добавляю представление к существующему, он просто не отображается в объекте привязки и Я даже пытаюсь перестроить и очистить проект, но это не работает, и мне нужно просто перезапустить проект или переименовать файл макета один или два раза, чтобы обновить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
Вы можете rebuild
проект ИЛИ close
проект и re-open
его
Просто Rebuild Project
, и вам не нужно перезапускать проект.
Вы пытались сделать кеши недействительными? Файл - »Недействительные кеши / перезапуск
@JeelVankhede да, я знаю, я пробовал, но тоже не работает.
Какую версию студии Android вы используете? @UmerKhan
@UmerKhan, просто снова синхронизируй свой проект
Связывание данных и поддержка платформы все еще не настолько развиты, я давно использую привязку данных, все проблемы, связанные с IDE, решены, но ваша проблема чаще всего случается и со мной.
Самое быстрое решение для меня - это
Это занимает почти 5 секунд. и генерирует все недавно добавленные классы привязки полей и макетов.
Это быстрее, чем Rebuild или Restart AS.
Этого не произойдет до тех пор, пока вы не перестроите проект, потому что так работает
Code generation
. ты умеешь перестроить проект правильно? @ Умер Хан