e: [kapt] An exception occurred: android.databinding.tool.util.LoggedErrorException: Found data binding errors
Asked Answered
I

4

15

I have enabled databinding, but while I execute the code I get this error.

error

e: [kapt] An exception occurred: android.databinding.tool.util.LoggedErrorException: Found data binding errors.

I created a fragment class and XML for that class. Im able to import datbindingutil class.

I have done rebuilt/ sync with gradle files/ invalidate cache and restart, nothing worked.

xml

<layout>

<!--suppress AndroidUnknownAttribute -->
<data class=".databinding.ProfileFragmentBinding">

    <variable
        name="user"
        type="com.sample.sample.user.User" />

    <variable
        name="vm"
        type="com.sample.sample.user.UserViewModel" />

    <variable
        name="handler"
        type="com.sample.sample.user.profile.ProfileFragment" />
</data>


<androidx.constraintlayout.widget.ConstraintLayout 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"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/profileIV"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="@dimen/medium"
        android:layout_marginTop="@dimen/medium"
        android:contentDescription="@null"
        android:src="@mipmap/ic_launcher_round"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:url="@{user.avatarUrl}" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="vertical"
        app:layout_constraintBottom_toBottomOf="@+id/profileIV"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="@+id/profileIV">

        <TextView
            android:id="@+id/profileNameLabel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="@font/myriad_pro_semibold"
            android:text="@{user.name}"
            android:textColor="@color/black_transparent_de"
            android:textSize="@dimen/text_regular"
            tools:text="NAME" />

        <TextView
            android:id="@+id/badgeLabel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:fontFamily="@font/myriad_pro_semibold"
            android:text="@{user.badge}"
            android:textColor="@color/grey_000000"
            android:textSize="@dimen/text_regular"
            tools:text="Superman" />

        <TextView
            android:id="@+id/profile_Label"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:fontFamily="@font/roboto_bold"
            android:text="@{user.badge}"
            android:textColor="@color/green_39b54a"
            android:textSize="@dimen/text_small"
            tools:text="farmer_v1" />

    </LinearLayout>

    <ImageView
        android:id="@+id/badgeIV"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="@dimen/medium"
        android:layout_marginTop="@dimen/medium"
        android:contentDescription="@null"
        android:src="@mipmap/ic_launcher"
        app:error="@{@drawable/ic_profile_default_grey_24dp}"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:placeholder="@{@drawable/ic_profile_default_grey_24dp}"
        app:url="@{user.badgeUrl}" />

    <ImageView
        android:id="@+id/locationPinIV"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/medium"
        android:contentDescription="@null"
        android:src="@drawable/ic_location_pin"
        app:layout_constraintStart_toStartOf="@+id/profileIV"
        app:layout_constraintTop_toBottomOf="@+id/profileIV" />

    <TextView
        android:id="@+id/profileAddressTV"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="@dimen/narrow"
        android:fontFamily="@font/roboto"
        android:textColor="@color/grey_000000"
        app:layout_constraintBottom_toBottomOf="@+id/locationPinIV"
        app:layout_constraintLeft_toRightOf="@+id/locationPinIV"
        app:layout_constraintTop_toTopOf="@+id/locationPinIV"
        tools:text="bangalore, Karnataka" />

    <ImageView
        android:id="@+id/dobIV"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="@dimen/standard"
        android:layout_marginTop="@dimen/medium"
        android:contentDescription="@null"
        android:src="@drawable/ic_dob"
        app:layout_constraintLeft_toRightOf="@+id/profileAddressTV"
        app:layout_constraintTop_toBottomOf="@+id/profileIV" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="@dimen/narrow"
        android:fontFamily="@font/roboto"
        android:textColor="@color/grey_000000"
        app:layout_constraintBottom_toBottomOf="@+id/locationPinIV"
        app:layout_constraintLeft_toRightOf="@+id/dobIV"
        app:layout_constraintTop_toTopOf="@+id/locationPinIV"
        tools:text="born on 01/01/2000" />

    <TextView
        android:id="@+id/activityLabel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/big"
        android:fontFamily="@font/myriad_pro_semibold"
        android:text="@string/activities"
        android:textColor="@color/black_transparent_de"
        android:textSize="@dimen/text_regular"
        app:layout_constraintStart_toStartOf="@+id/profileIV"
        app:layout_constraintTop_toBottomOf="@+id/locationPinIV" />

    <View
        android:id="@+id/dividerV"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_marginEnd="@dimen/small"
        android:layout_marginStart="@dimen/small"
        android:layout_marginTop="@dimen/regular"
        android:background="@color/grey_000000"
        app:layout_constraintTop_toBottomOf="@+id/activityLabel" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        app:layout_constraintTop_toBottomOf="@+id/dividerV">

        <!--<com.google.android.material.tabs.TabLayout
            android:id="@+id/tablayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:pager="@{(pager)}"
            app:tabGravity="fill"
            app:tabIndicatorColor="@color/black"
            app:tabMode="fixed"
            app:tabSelectedTextColor="@color/black"
            app:tabTextAppearance="@style/CustomTextTab"
            app:tabTextColor="#b4ffffff" />

        <androidx.viewpager.widget.ViewPager
            android:id="@+id/viewpager"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/tablayout"
            app:handler="@{handler}"
            app:layout_behavior="@string/appbar_scrolling_view_behavior" />-->

    </RelativeLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

class

    class ProfileFragment : Fragment() {
    @Inject
    lateinit var mFactory: ViewModelProvider.Factory
    private lateinit var mBinding: ProfileFragmentBinding

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_profile, container, false);
        return mBinding.root
    }

    override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)
        val vm: UserViewModel = getViewModel(mFactory)
        mBinding.vm = vm
        //mBinding.handler = this
        //mBinding.setLifecycleOwner(this)
    }

    /*@BindingAdapter("bind:handler")
    fun bindViewPagerAdapter(view: ViewPager, activity: MainActivity) {
        val adapter = ProfilePagerAdapter(view.context, activity.supportFragmentManager)
        view.adapter = adapter
    }

    @BindingAdapter("bind:pager")
    fun bindViewPagerTabs(view: TabLayout, pagerView: ViewPager) {
        view.setupWithViewPager(pagerView, true)
    }*/
}
Intangible answered 6/11, 2018 at 6:39 Comment(3)
did you find fix for this issue?Gianna
from invalidate cache->select only invalidate, then close the project and remove project from the suggestion and restart android studio and open project again.Intangible
https://mcmap.net/q/473026/-build-exception-in-data-binding-antotaion-processor-malformed-byte-sequenceNucleoside
S
19

in my case I was able to find it when the mouse was hovering that line in the build output, as shown here:

without hover: enter image description here

with hover: enter image description here

it's really a shame how they show the error, for the simplest error ever, I was trying 10 different solutions as well invalidating the cache and ...

UPDATE:

you can also click here :

enter image description here

and you'll get something like this:

enter image description here

which is very detailed information about the error, I was missing this button in 7 years of Android Development :D

Surakarta answered 12/6, 2019 at 5:53 Comment(1)
Thanks! Also it's possible to press on error line, copy it, paste to text editor and check full stacktrace there.Hummer
M
4

Run ./gradlew build --stacktrace to check the details, which will tell you where the issue happens, something like:

e: [kapt] An exception occurred: android.databinding.tool.util.LoggedErrorException: Found data binding errors. Could not find accessor xx file:xxx/app/src/main/res/layout/fragment_xxxx.xml Line:108

Sometimes if you changed the property name, especially when changed by refactor => rename, the property name won't be changed in xml automatically.

Matchbox answered 16/2, 2019 at 0:22 Comment(0)
M
2

Mostly this error occurs when the name of the variable passed in the XML file through data binding is incorrect. Just hover over the mouse on the error and you would be able to identify the culprit variable there.

Mayor answered 10/7, 2019 at 8:16 Comment(0)
P
0

if it happen when change jdk versions, delete all build folders in every module that you have on the project, It's fixed my issue.

delete caches folder to

finder -> home -> click on "command +shift + ." to see hidden folders -> .gradle -> caches

Puissant answered 12/7, 2022 at 13:23 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.