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

10,413

Solution 1

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

Solution 2

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.

Solution 3

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.

Share:
10,413

Related videos on Youtube

wasim
Author by

wasim

Updated on July 10, 2022

Comments

  • wasim
    wasim almost 2 years

    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)
        }*/
    }