Reputation: 607
I have enabled databinding, but while I execute the code I get this 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.
<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 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)
}*/
}
Upvotes: 15
Views: 14897
Reputation: 219
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
Upvotes: 0
Reputation: 3943
in my case I was able to find it when the mouse was hovering that line in the build output, as shown 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 :
and you'll get something like this:
which is very detailed information about the error, I was missing this button in 7 years of Android Development :D
Upvotes: 19
Reputation: 4287
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.
Upvotes: 2
Reputation: 1933
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.
Upvotes: 4