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&lt;String>" />
        <variable
            name="piece"
            type="Field&lt;String>" />

        <variable
            name="parcels"
            type="LiveData&lt;List&lt;Consumption>>" />

        <variable
            name="parcel"
            type="LiveData&lt;Parcel>" />
    </data>

Трассировка стека, отображаемая в logcat, не дает много информации о том, где произошла ошибка.

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

0 ответов