ANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1
Solution 1
Disclaimer:
The fix below is intended to solve a specific problem with some dependencies conflict, mostly databinding issues can cause this error but are only a consequence of wrong XML or code and the solution below will not work in this case. Double check your XML/code correctness before trying the below solution.
This is a known problem with some databinding versions (which is embedded in Android Studio) and other dependencies like Room
which import different versions of org.antlr:antlr4
library.
UPDATE: 12/06/2020 (dd/MM/yyyy)
If you use Room, updating to Room 2.3.0-alpha01 or above should remove the error because they have fixed the problem here: https://issuetracker.google.com/issues/150106190
Put this configuration in the app build.gradle
//groovy
configurations.all {
resolutionStrategy.force "org.antlr:antlr4-runtime:4.7.1"
resolutionStrategy.force "org.antlr:antlr4-tool:4.7.1"
}
//kotlin DSL
configurations.all {
resolutionStrategy {
force("org.antlr:antlr4-runtime:4.7.1")
force("org.antlr:antlr4-tool:4.7.1")
}
}
If you still have problems, you can try using the
4.5.3
version above instead of4.7.1
to downgrade the library
Solution 2
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.
Solution 3
I faced the same issue while i was updating my entity/model class by just adding
private int isSale = 0;
Issue was i did not create setter getter for above attribute so Room Database was confused and throw compile time exception i.e. ANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1.
Solution 4
My issue was caused because I'd changed data models that were used inside the <variable />
tag in XML file and did not change XML file itself.
Hope it will help somebody
Solution 5
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.
<data class="MainActivityBinding">
<variable
name="vm"
type="com.abcd.efg.home.MapViewModel" />
</data>
<androidx.drawerlayout.widget.DrawerLayout 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:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/includeAppBar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<FrameLayout
android:id="@+id/toolbar_container"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:title="@string/app_name"
app:titleTextColor="@color/white" />
</FrameLayout>
</com.google.android.material.appbar.AppBarLayout>
<fragment
android:id="@+id/navigation"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="0dp"
android:layout_height="0dp"
app:defaultNavHost="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/includeAppBar"
app:navGraph="@navigation/nav_main" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.navigation.NavigationView
android:id="@+id/sideNV"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@color/drawerBackground"
android:fitsSystemWindows="true"
android:shadowColor="@color/white"
app:headerLayout="@layout/nav_header_home"
app:menu="@menu/activity_main_drawer" />
</androidx.drawerlayout.widget.DrawerLayout>
Casper Lindberg
Updated on July 05, 2022Comments
-
Casper Lindberg almost 2 years
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.1.
ANTLR 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.1
ANTLR 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 symbolimport 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"/>
-
Casper Lindberg about 4 yearsThanks for the replay MatPag but it neither of the options work unfortunately.
-
MatPag about 4 yearsReally strange :/ Double check your XML file, you probably have some error somewhere that is blocking Binding class generation. Start trying removing binding elements from the XML (elements in data too)
-
GuilhE about 4 yearsCan you help me with .kts (kotlin) version of those commands? Can't make it work. Thanks.
-
MatPag about 4 years@GuilhE Updated the answer adding the Kotlin DSL version
-
GuilhE about 4 yearsAlso, in my case what solved was changing a custom
BindingAdapter
that was receiving "T?". I had to change to "T? = null" to make it work (I can remove theresolutionStrategy
now) :) -
MatPag about 4 yearsI've added a small disclaimer to my answer, it was intended to solve a specific problem. Thank you for the the comment :)
-
Casper Lindberg about 4 yearsThanks a lot for your answer. I updated my question with the solution.
-
GuilhE about 4 yearsI think this problem will be 99% related with
databinding
errors. Here's another one: stackoverflow.com/questions/60907059/… -
agonist_ over 3 yearsupgrading room did the job to me. didn't even had binding stuff in my XML... tricky one ! Thanks
-
Gregory Nowik over 3 yearsTook me hours to find this was the problem, thanks ! I wish the data binding build errors weren't as occult.
-
Peter Mortensen over 3 yearsThe syntax highlighting for the XML is off (near "<TextView") because the XML comment (
<!-- WRONG -->
) is not allowed inside an XML tag (in other words, it is not valid XML). -
Peter Mortensen over 3 yearsCan you add space after "." (full stop) and after ", " (comma)? See also run-on sentences and infinitive (base) form of the verb with a helper verb, not past tense.
-
ansh sachdeva over 3 years@PeterMortensen Yes I intentionally did so to grab attention at a common XML mistake. By the way, Thank you for all your edits (on this answer as well as the others)
-
Ace over 3 yearsThe only answer that deserves looking at is this. All other answers here solve specific problems caused by general lack of skill and/or awareness on the developers' end, and are unrelated to the cause of the problem explained in the question. Worst part is, they either unload the entire content of their files or give you a useless one-liner.
-
Ace over 3 yearsIt's worth mentioning that simply upgrading room version to 2.3.0-alpha01 or higher should solve this problem if you didn't mess something else up.
-
Mohd Qasim almost 3 yearsah! save my day tq