Kotlin android 数据绑定问题在 app:kaptDebugKotlin 中失败

Kotlin android data binding issue fails in app:kaptDebugKotlin

同时启用数据绑定和视图绑定后

`
buildFeatures {
        viewBinding true
        dataBinding true
      
    }`

并在 运行 应用程序时开始出现此错误,但在同步 gradle 时不会出现此错误。已尝试 clean/rebuild 并使缓存无效并重新启动,helping.Everything 没有在 gradle 中正确添加任何内容。

    > Task :app:kaptDebugKotlin
                ^
  symbol:   class ConstraintLayout
  location: class ActivityAeBinding app/build/generated/data_binding_base_class_source_out/debug/out/com/packagename/databinding/ActivityAeBinding.java:19: error: cannot find symbol
  private ActivityAeBinding(@NonNull ConstraintLayout rootView) {
                                     ^
  symbol:   class ConstraintLayout
  location: class ActivityAeBinding /app/build/generated/data_binding_base_class_source_out/debug/out/com/databinding/ActivityAeBinding.java:25: error: cannot find symbol
  public ConstraintLayout getRoot() {
         ^
  symbol:   class ConstraintLayout
  location: class ActivityAeBinding

> Task :app:kaptDebugKotlin FAILED
Execution failed for task ':app:kaptDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
   > java.lang.reflect.InvocationTargetException (no error message)

这是编译器在 运行 app

时抱怨的问题 class
// Generated by view binder compiler. Do not edit!
package com.example.databinding;

import android.support.constraint.ConstraintLayout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewbinding.ViewBinding;
import com.sah.android.apps.mydrawer.R;
import java.lang.NullPointerException;
import java.lang.Override;

public final class ActivityAeBinding implements ViewBinding {
  @NonNull
  private final ConstraintLayout rootView;

  private ActivityAeBinding(@NonNull ConstraintLayout rootView) {
    this.rootView = rootView;
  }

  @Override
  @NonNull
  public ConstraintLayout getRoot() {
    return rootView;
  }

  @NonNull
  public static ActivityAeBinding inflate(@NonNull LayoutInflater inflater) {
    return inflate(inflater, null, false);
  }

  @NonNull
  public static ActivityAeBinding inflate(@NonNull LayoutInflater inflater,
      @Nullable ViewGroup parent, boolean attachToParent) {
    View root = inflater.inflate(R.layout.activity_ae, parent, false);
    if (attachToParent) {
      parent.addView(root);
    }
    return bind(root);
  }

  @NonNull
  public static ActivityAeBinding bind(@NonNull View rootView) {
    if (rootView == null) {
      throw new NullPointerException("rootView");
    }

    return new ActivityAeBinding((ConstraintLayout) rootView);
  }
}


    

您不能同时使用View Binding and Data Binding

我建议您删除其中一个并重试。
如果您仍然面临挑战,那么 post 完成文件。

请注意,View Binding 旨在处理更简单的用例,View Binding 的限制包含在 Data Binding 中。后者处理复杂的功能。请完整阅读他们的文档以更加清晰。

此外,请访问此 page,然后导航到部分 与数据绑定的比较

最后,请完成这个已经回答的问题

回答它是因为想要强调当您的数据绑定或视图绑定出现特殊问题时,几乎可以肯定布局文件中存在一些问题。

与我的情况一样,令人困惑的部分是生成的绑定 class 不是我的项目的一部分 idk 为什么要生成但是在搜索我所有的布局文件后我发现了一个来自支持库的导入而不是 androidx 从而创建这个奇怪的问题。