这是 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)
我尝试过的:
清洁和重建
使缓存失效并重新启动
您所包含的布局的根视图必须有一个ID。
扩展@zOqvxf的答案:
您要绑定的布局应该有一个根标签
<layout>
。您需要为其添加一个 id,如下所示:
<layout
...
android:id="@+id/layout_root">
如果您有多个布局文件,那么您必须使用布局标签更新这两个布局
Ex: activity_main.xml, activity_main.xml landscape
or any other dimensions layout.
我通过删除文件构建、项目中的 .gradel 文件夹和应用程序文件夹中的构建文件夹解决了我的问题
解决了删除导入
<layout>
<data>
<import type="android.view.View"/>
</data>
</layout>
到此
<layout>
<data>
</data>
</layout>
对我来说这只是一个随机错误,我删除了布局文件,重新创建它并且它起作用了
对我来说帮助添加了 kotlin std lib 的显式版本,因为某些依赖项可能会隐式采用意外版本
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10"