Попытка перенести приложение из поддержки на androidx для android 29. При получении ошибки в android studio не может сгенерировать связующие элементы представления java.lang.StackOverflowError . Ошибка не показывает имя файла или номер строки.
После изучения возможных решений я обнаружил, что эта проблема связана с адаптером Binding.
При переносе приложения - фрагмент кода, автоматически преобразуемый программой android studio.
Старый код
android:visibility="@{rating.isExtended.get()?View.VISIBLE:View.GONE}"
Новый код
android:visibility="@{safeUnbox(rating.isExtended.get())?View.VISIBLE:View.GONE}"
Я следовал по этой ссылкеи использовал следующий фрагмент.
@BindingAdapter("app:goneUnless")
public static void goneUnless(View view, Boolean visible) {
view.visibility = visible ? View.VISIBLE : View.GONE;
}
Теперь проблема решена.