androidx.databinding.ViewDataBinding.IncludedLayouts 在 ViewDataBinding 中具有受保护的访问权限

问题描述 投票:0回答:7

这是 Android Studio 中的一个工作项目,今天当我打开项目时,它显示多个 BindingImpl 类的以下错误。每个 BindingImpl 类都有两种类型的错误。

第一个:

error: cannot find symbol
public class ActivityMainBindingImpl extends ActivityMainBinding  {
                                             ^
  symbol: class ActivityMainBinding

第二个:

error: IncludedLayouts has protected access in ViewDataBinding
    private static final androidx.databinding.ViewDataBinding.IncludedLayouts sIncludes;
                                                             ^

最后的另一个错误:

Execution failed for task ':app:kaptProdDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction
   > java.lang.reflect.InvocationTargetException (no error message)

我尝试过的:

清洁和重建

使缓存失效并重新启动

android android-databinding
7个回答
17
投票

您所包含的布局的根视图必须有一个ID。


3
投票

扩展@zOqvxf的答案:

您要绑定的布局应该有一个根标签

<layout>
。您需要为其添加一个 id,如下所示:

<layout
    ...
    android:id="@+id/layout_root">

1
投票

如果您有多个布局文件,那么您必须使用布局标签更新这两个布局

Ex: activity_main.xml,  activity_main.xml landscape
or any other dimensions layout.

0
投票

我通过删除文件构建、项目中的 .gradel 文件夹和应用程序文件夹中的构建文件夹解决了我的问题


0
投票

解决了删除导入

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

到此

<layout>
        <data>
      
         </data>
    </layout>

0
投票

对我来说这只是一个随机错误,我删除了布局文件,重新创建它并且它起作用了


0
投票

对我来说帮助添加了 kotlin std lib 的显式版本,因为某些依赖项可能会隐式采用意外版本

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10"
© www.soinside.com 2019 - 2024. All rights reserved.