Чтобы устранить эту ошибку, вы можете использовать несколько способов:
1) Вы можете использовать примитивный логический тип с инвертированной логикой (shouldBeVisible -> shouldBeHidden)
<variable name="shouldBeHidden" type="boolean" />
<LinearLayout
android:layout_width="40dp"
android:layout_height="30dp"
android:background="#dd0"
android:visibility="@{shouldBeHidden ? View.GONE : View.VISIBLE}" />
2) Второй способ - использовать логический тип в штучной упаковке (как у вас сейчас) и установить значение по умолчанию в выражениях
<LinearLayout
android:layout_width="40dp"
android:layout_height="30dp"
android:background="#dd0"
android:visibility="@{(shouldBeVisible ?? true) ? View.VISIBLE : View.GONE}" />
3) Третий способ - установить его вручную после накачивания переплета (как вы уже делаете сейчас)
binding.shouldBeVisible=true
4) Использовать ключевое слово по умолчанию в значении данных
<LinearLayout
android:layout_width="40dp"
android:layout_height="30dp"
android:background="#dd0"
android:visibility="@{shouldBeVisible ? View.VISIBLE : View.GONE, default=View.GONE}" />
Выберите тот, который наилучшим образом соответствует вашим потребностям.