Android DataBindingUtil.inflate вызывает исключение InvocationTargetException
Я работаю над приложением для Android, которое регистрирует расход материалов для производства на складах. Я использую компонент архитектуры Android UI Navigation для управления навигацией в приложении. В каждом фрагменте я использую одну и ту же функцию onCreateView:
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = DataBindingUtil.inflate(inflater, R.layout.fragment_layout, container, false)
return inflater.inflate(R.layout.fragment_layout, container, false)
}
где fragment_layout - это идентификатор ресурса текущего макета фрагментов.
Моя проблема теперь в том, что в одном фрагменте вызов DataBindingUtil.inflate вызывает исключение InvocationTargetException.
Я уже закомментировал весь макет, чтобы проверить наличие ошибок в файле макета. После этого я закомментировал всю логику представлений внутри фрагмента. Это приводило к одному и тому же исключению снова и снова.
Последним тестом, который я сделал, было изменение линейного кода внутри onCreateView с
binding = DataBindingUtil.inflate(inflater, R.layout.consumption_fragment, container, false)
return binding.root
кому:
return inflater.inflate(R.layout.fragment_layout, container, false)
После этого все проблемы исчезли. Но это решение мне не подходит, потому что мне нужно использовать привязки данных.
Это раздел данных рассматриваемого файла макета
<data>
<import type="Field" />
<import type="androidx.lifecycle.LiveData" />
<import type="java.util.List" />
<variable
name="parcelNo"
type="Field<String>" />
<variable
name="piece"
type="Field<String>" />
<variable
name="parcels"
type="LiveData<List<Consumption>>" />
<variable
name="parcel"
type="LiveData<Parcel>" />
</data>
Трассировка стека, отображаемая в logcat, не дает много информации о том, где произошла ошибка.
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)