用于代码生成的ANTLR工具版本4.5.3与当前的运行时版本4.7.1不匹配 [英] ANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1

查看:3855
本文介绍了用于代码生成的ANTLR工具版本4.5.3与当前的运行时版本4.7.1不匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在一个特定的数据绑定中,DataBindingMapperImpl.java中出现错误,这在构建项目时导致以下错误.

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)

我也尝试过

  1. 先清理项目,然后再重建项目
  2. 文件->使缓存无效/重新启动
  3. 打开和关闭Android Studio

连接到数据绑定的布局文件如下

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}"

却忘记了导入

<data>
    <import type="android.view.View"/>

推荐答案

免责声明:

以下修复程序旨在解决某些特定问题 依赖项冲突,主要是数据绑定问题会导致此错误,但是 只是错误的XML或代码的后果,以及 在这种情况下,下面的解决方案将不起作用.在尝试以下解决方案之前,请仔细检查您的XML/代码正确性.

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.

这是某些数据绑定版本(嵌入在AS中)和其他依赖项(例如,Room)会导入不同版本的org.antlr:antlr4库的已知问题.

This is a known problem with some databinding versions (which is embedded in AS) and other dependencies like Room which import different versions of org.antlr:antlr4 library.

将此配置放入应用程序build.gradle

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")
    }
}

如果仍然有问题,可以尝试使用上面的4.5.3版本 而不是4.7.1降级库

If you still have problems, you can try using the 4.5.3 version above instead of 4.7.1 to downgrade the library

参考

这篇关于用于代码生成的ANTLR工具版本4.5.3与当前的运行时版本4.7.1不匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆