डेटा बाइंडिंग और व्यू बाइंडिंग दोनों को सक्षम करने के बाद

`
buildFeatures {
        viewBinding true
        dataBinding true
      
    }`

और ऐप चलाते समय यह त्रुटि देना शुरू कर दिया लेकिन ग्रेडेल को सिंक करते समय नहीं। कैश को साफ़/पुनर्निर्माण और अमान्य करने और पुनरारंभ करने का प्रयास किया, कुछ भी मदद नहीं कर रहा है। सब कुछ सही ढंग से क्रमिक रूप से जोड़ा गया।

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

यह समस्याग्रस्त वर्ग है जिसके बारे में कंपाइलर ऐप चलाते समय शिकायत कर रहा है

// 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);
  }
}


    
0
himel 10 जिंदा 2021, 11:01

2 जवाब

सबसे बढ़िया उत्तर

इसका उत्तर देना क्योंकि जब आपके डेटा बाइंडिंग या व्यू बाइंडिंग के साथ कुछ अजीबोगरीब गलत है, तो इस पर जोर देना चाहते हैं कि यह लगभग निश्चित है कि लेआउट फाइलों में कुछ समस्या है।

जैसा कि मेरे मामले में भ्रमित करने वाला हिस्सा था, उत्पन्न बाध्यकारी वर्ग मेरे प्रोजेक्ट आईडी का हिस्सा नहीं था, यह क्यों उत्पन्न कर रहा था, लेकिन मेरी सभी लेआउट फ़ाइलों को खोजने के बाद मैंने समर्थन पुस्तकालय से एक आयात की खोज की, न कि androidx ने इस अजीब मुद्दे को बनाया।

1
himel 18 जिंदा 2021, 07:04

आप देखें बाइंडिंग और डेटा बाइंडिंग

मेरा सुझाव है कि आप इनमें से किसी एक को हटा दें और पुनः प्रयास करें।
यदि आप अभी भी चुनौती का सामना करते हैं, तो पूरी फाइलें पोस्ट करें।

कृपया ध्यान दें कि, View Binding का उद्देश्य सरल उपयोग के मामलों को संभालना है और View Binding की सीमाएं Data Binding में शामिल हैं। बाद में जटिल कार्यक्षमता को संभालता है। अधिक स्पष्टता के लिए कृपया उनके दस्तावेज़ों को पूरी तरह से पढ़ें।

साथ ही, कृपया इस पेज पर जाएं और फिर तुलना करें अनुभाग पर जाएं डेटा बाइंडिंग

और फिर अंत में, कृपया इस पहले से उत्तर दिए गए प्रश्न को देखें यहां .

0
Dharman 10 जिंदा 2021, 13:31