I'm getting an error in DataBindingMapperImpl.java for one specific data binding which results in the following error when building the project.
ANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1ANTLR Runtime version 4.5.3 used for parser compilation does not match the current runtime version 4.7.1ANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1ANTLR Runtime version 4.5.3 used for parser compilation does not match the current runtime version 4.7.1/Users/casper/Documents/ARCore/Name/app/build/generated/source/kapt/nameDebug/com/company/name/DataBinderMapperImpl.java:10: error: cannot find symbol
import com.company.name.databinding.ActivitySplashScreenBindingImpl;
^
symbol: class ActivitySplashScreenBindingImpl
> Task :app:kaptNameDebugKotlin FAILED
> Task :app:mergeExtDexNameDebug
location: package com.company.name.databinding
FAILURE: Build failed with an exception.
followed by the error message below...
I followed the similar post here which resulted in this, which is the end of the error message above.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:kaptNameDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
> java.lang.reflect.InvocationTargetException (no error message)
I have also tried
- Clean Project and then Rebuild project
- File -> Invalidate Caches / Restart
- Turn Android Studio on and off
The layout file connected to the data binding looks like this
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="viewmodel"
type="com.company.name.ui.splashScreen.viewModel.SplashScreenViewModel"/>
<variable
name="tryAgainBtnHandler"
type="com.company.name.ui.splashScreen.viewModel.interfaces.TryAgainBtnHandler"/>
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.splashScreen.view.SplashScreenActivity">
Solution The error was caused by a mistake. I did set visibility by
android:visibility="@{viewmodel.errorContainerVisible ? View.VISIBLE : View.GONE}"
and forgot to import
<data>
<import type="android.view.View"/>
Disclaimer:
This is a known problem with some databinding versions (which is embedded in AS) and other dependencies like
Room
which import different versions oforg.antlr:antlr4
library.Put this configuration in the app
build.gradle
Reference
In my project, this error was caused by an incorrect query in one of my Room DAOs. Fixing the query removed the error.
It's unfortunate the error message doesn't clearly indicate the source of the error.
I got the same error, in my case it was caused due to wrong imports in xml layout.I refactored and changed my package name but that didn't changed the same inside xml files.It showed me the same error.I went through all the fragments,activities and layouts to check if there was any wrong imports/missing imports.After clearing all the import and variable issues, the build was successful.
This was a very frustrating problem for me to solve. As this error was covering up the real problem. And as mentioned by @MatPag above, this indeed is not specific to some problem, it could be anything.
After hours of trying anything that I could find on the web, I had the idea to check the generated files in the Android
Project View sidebar
, and by chance I noticed some errors in thedataBinding
generated files. The way to solve this is to understand those errors and fix them in the XML files. For me it was some conflict in variable names.