特定のデータバインディングのDataBindingMapperImpl.Javaでエラーが発生し、プロジェクトのビルド時に次のエラーが発生します。
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.
続いて以下のエラーメッセージが表示されます...
私は同様の投稿 here をフォローしましたが、これは上記のエラーメッセージの終わりです。
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)
私も試しました
データバインディングに接続されたレイアウトファイルは次のようになります。
<?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">
解決策エラーは間違いによって引き起こされました。私は可視性を設定しました
Android:visibility="@{viewmodel.errorContainerVisible ? View.VISIBLE : View.GONE}"
インポートするのを忘れた
<data>
<import type="Android.view.View"/>
アップグレードによりエラーが表示されましたcom.google.Android.material:material
から1.1.0-alpha09
から1.3.0-alpha01
私のプロジェクトでは、このエラーは私の部屋DAOの1つでの誤ったクエリが原因で発生しました。クエリを修正するとエラーが削除されました。
残念ながら、エラーメッセージはエラーの原因を明確に示していません。
これは私が解決するのは非常にイライラする問題でした。このエラーが本当の問題をカバーしていたので。上記の@MatPagで述べたように、これは確かに特定の問題に固有のものではなく、何でもかまいません。
何時間もウェブで見つけたものを何回か試してみた後、Android Project View sidebar
、そして偶然にdataBinding
で生成されたファイルにいくつかのエラーに気づきました。これを解決する方法は、それらのエラーを理解し、XMLファイルで修正することです。私にとっては、変数名の衝突でした。
同じエラーが発生しましたが、私の場合、それはxmlレイアウトでの誤ったインポートが原因で発生しました。パッケージ名をリファクタリングして変更しましたが、xmlファイル内の同じものは変更されませんでした。同じエラーが表示されました。フラグメント、アクティビティ、およびレイアウトで、間違ったインポート/欠落したインポートがないかどうかを確認します。すべてのインポートと変数の問題をクリアした後、ビルドは成功しました。
<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>