एंड्रॉइड स्टूडियो 3.2 कैनरी 16 कोटलिन परियोजना पर प्रतीक डाटाबाइंडिंगकंपोनेंट नहीं पा सकते हैं


90

मैंने अभी हाल ही में कोटलिन सक्षम के साथ एंड्रॉइड स्टूडियो 3.2 कैनरी 16 पर एक नया प्रोजेक्ट बनाया। फिर मैंने डेटा बाइंडिंग को भी सक्षम किया, लेकिन मुझे यह कहते हुए एक त्रुटि हो रही है कि यह DataBindingComponent वर्ग को नहीं मिला।

यहाँ मेरी परियोजना को वर्गीकृत किया गया है:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlin_version = '1.2.41'
    ext.android_plugin_version = '3.2.0-alpha10'
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.0-alpha16'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

मेरा मॉड्यूल ग्रेड फ़ाइल:

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-kapt'

apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "net.julianonunes.myapp"
        minSdkVersion 22
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    dataBinding {
        enabled = true
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation"org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    implementation 'com.squareup.okhttp3:okhttp:3.10.0'
    implementation 'com.android.support:design:27.1.1'
    kapt "com.android.databinding:compiler:3.1.2"
}

मेरी गतिविधि का xml:

<?xml version="1.0" encoding="utf-8"?>
<layout 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">

    <data>
        <variable
            name="data"
            type="net.julianonunes.myapp.RegisterData" />
    </data>

    ....
</layout>

और यहाँ निर्माण आउटपुट है:

Executing tasks: [clean, :app:assembleDebug]

Configuration on demand is an incubating feature.

> Configure project :app
app: 'annotationProcessor' dependencies won't be recognized as kapt annotation processors. Please change the configuration name to 'kapt' for these artifacts: 'androidx.databinding:databinding-compiler:3.2.0-alpha16'.

> Task :clean
> Task :app:clean
> Task :app:preBuild UP-TO-DATE
> Task :app:preDebugBuild
> Task :app:compileDebugAidl NO-SOURCE
> Task :app:compileDebugRenderscript
> Task :app:checkDebugManifest
> Task :app:generateDebugBuildConfig
> Task :app:prepareLintJar UP-TO-DATE
> Task :app:mainApkListPersistenceDebug
> Task :app:generateDebugResValues
> Task :app:generateDebugResources
> Task :app:mergeDebugResources
> Task :app:createDebugCompatibleScreenManifests
> Task :app:processDebugManifest
> Task :app:splitsDiscoveryTaskDebug
> Task :app:processDebugResources
> Task :app:generateDebugSources
> Task :app:dataBindingExportBuildInfoDebug
> Task :app:transformDataBindingBaseClassLogWithDataBindingMergeGenClassesForDebug
> Task :app:transformDataBindingWithDataBindingMergeArtifactsForDebug
> Task :app:dataBindingGenBaseClassesDebug
Download https://dl.google.com/dl/android/maven2/com/android/databinding/compiler/3.1.2/compiler-3.1.2.pom
Download https://dl.google.com/dl/android/maven2/com/android/databinding/compiler/3.1.2/compiler-3.1.2.jar
> Task :app:kaptGenerateStubsDebugKotlin
e: /home/juliano/Documents/Projetos/myapp/app/build/generated/data_binding_base_class_source_out/debug/dataBindingGenBaseClassesDebug/out/net/julianonunes/myapp/databinding/ActivityMainBinding.java:28: error: cannot find symbol
  protected ActivityMainBinding(DataBindingComponent _bindingComponent, View _root,
                                ^
  symbol:   class DataBindingComponent
  location: class ActivityMainBinding
e: /home/juliano/Documents/Projetos/myapp/app/build/generated/data_binding_base_class_source_out/debug/dataBindingGenBaseClassesDebug/out/net/julianonunes/myapp/databinding/ActivityMainBinding.java:46: error: cannot find symbol
      @Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent component) {
                                                                ^
  symbol:   class DataBindingComponent
  location: class ActivityMainBinding
e: /home/juliano/Documents/Projetos/myapp/app/build/generated/data_binding_base_class_source_out/debug/dataBindingGenBaseClassesDebug/out/net/julianonunes/myapp/databinding/ActivityMainBinding.java:57: error: cannot find symbol
      @Nullable DataBindingComponent component) {
                ^
  symbol:   class DataBindingComponent
  location: class ActivityMainBinding
e: /home/juliano/Documents/Projetos/myapp/app/build/generated/data_binding_base_class_source_out/debug/dataBindingGenBaseClassesDebug/out/net/julianonunes/myapp/databinding/ActivityMainBinding.java:68: error: cannot find symbol
      @Nullable DataBindingComponent component) {
                ^
  symbol:   class DataBindingComponent
  location: class ActivityMainBinding
e: [kapt] An exception occurred: java.lang.NullPointerException
    at java.io.File.<init>(File.java:277)
    at android.databinding.annotationprocessor.ProcessExpressions.onHandleStep(ProcessExpressions.java:77)
    at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.runStep(ProcessDataBinding.java:203)
    at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.access$000(ProcessDataBinding.java:188)
    at android.databinding.annotationprocessor.ProcessDataBinding.doProcess(ProcessDataBinding.java:90)
    at android.databinding.annotationprocessor.ProcessDataBinding.process(ProcessDataBinding.java:65)
    at org.jetbrains.kotlin.kapt3.ProcessorWrapper.process(annotationProcessing.kt:131)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
    at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
    at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1068)
    at org.jetbrains.kotlin.kapt3.AnnotationProcessingKt.doAnnotationProcessing(annotationProcessing.kt:87)
    at org.jetbrains.kotlin.kapt3.AnnotationProcessingKt.doAnnotationProcessing$default(annotationProcessing.kt:45)
    at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.runAnnotationProcessing(Kapt3Extension.kt:257)
    at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.analysisCompleted(Kapt3Extension.kt:212)
    at org.jetbrains.kotlin.kapt3.ClasspathBasedKapt3Extension.analysisCompleted(Kapt3Extension.kt:95)
    at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM$analyzeFilesWithJavaIntegration$2.invoke(TopDownAnalyzerFacadeForJVM.kt:97)
    at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:107)
    at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:84)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:374)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:64)
    at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:101)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:365)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:130)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:161)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:63)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:107)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:51)
    at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:96)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl$compile$1$1$2.invoke(CompileServiceImpl.kt:405)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl$compile$1$1$2.invoke(CompileServiceImpl.kt:98)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl$doCompile$$inlined$ifAlive$lambda$2.invoke(CompileServiceImpl.kt:920)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl$doCompile$$inlined$ifAlive$lambda$2.invoke(CompileServiceImpl.kt:98)
    at org.jetbrains.kotlin.daemon.common.DummyProfiler.withMeasure(PerfUtils.kt:137)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl.checkedCompile(CompileServiceImpl.kt:950)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl.doCompile(CompileServiceImpl.kt:919)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:404)
    at sun.reflect.GeneratedMethodAccessor91.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:346)
    at sun.rmi.transport.Transport$1.run(Transport.java:200)
    at sun.rmi.transport.Transport$1.run(Transport.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

> Task :app:kaptDebugKotlin FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:kaptDebugKotlin'.
> Compilation error. See log for more details

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
See https://docs.gradle.org/4.7/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 8s
20 actionable tasks: 19 executed, 1 up-to-date

मेरी परियोजना में क्या गलत है?

पुनश्च: समस्या एंड्रॉइड स्टूडियो 3.1.2 पर भी होती है


क्या आपको कोई समाधान मिला?
बृजेश जोशी

@ बृजेश जोशी मेरा जवाब नीचे देखें
एडिज क्रूसर

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

1
मेरे मामले में लॉग में कोई अन्य त्रुटि नहीं दिखाई गई थी, लेकिन मेरे अंतर की समीक्षा करने के बाद मुझे कुछ केटी फ़ाइल में एक असम्बद्ध एनोटेशन मिला। आयात को ठीक करने के बाद, निर्माण कार्य करें। Kapt प्रोसेसर में कुछ समस्या लगती है।
Androidguy

1
android.databinding.enableV2=false android.enableExperimentalFeatureDatabinding = falsegrade.propertiesमेरी समस्या हल करने के लिए इसे जोड़ना
MMK

जवाबों:


58

Databinding पुस्तकालयों androidx refactoring के एक भाग के रूप में refactored जा रहे हैं।

मुझे यहाँ गूगल के मावेन रिपॉजिटरी से डेटाबाइंड एनोटेशन प्रोसेसर डिपेंडेंसी लिंक मिला ।

मैंने वहां से वास्तविक ग्रेडेल निर्भरता का निर्माण किया है।

kapt "androidx.databinding:databinding-compiler:3.2.0-alpha16"

अपडेट एंड्रॉइड स्टूडियो 3.2.0-बीटा 01 के रूप में, डेटाबाइंडिंग को अब अपने एनोटेशन प्रोसेसर निर्भरता की जरूरत नहीं है, जो कि ग्रेड फ़ाइल में घोषित की जाए, क्योंकि डेटाबाइंडिंग अपनी निर्भरता को हल करने में सक्षम है।


4
मैंने इस निर्भरता को हटा दिया है और नीचे दिए गए सभी समाधानों की कोशिश की है, लेकिन कुछ भी काम नहीं करता है
संजीव

आप किस स्टूडियो संस्करण का उपयोग कर रहे हैं?
सैमुअल रॉबर्ट

एंड्रॉइड स्टूडियो 3.3 कैनरी 11 के साथ ढाल 4.10
संजीव

त्रुटि: प्रतीक DataBindingComponent नहीं मिल रहा है, मैं hava डेटा Gradle में संरचना करने के लिए सक्षम बंधन, मैं इस समस्या क्या पता नहीं है
संजीव

डेटालेबल में सक्षम है?
सैमुअल रॉबर्ट

61

निम्नलिखित सेटअप के साथ

Android Studio 3.2.1 बिल्ड # AI-181.5540.7.32.5056338, 8 अक्टूबर, 2018 को बनाया गया JRE: 1.8.0_152-release-1136-b06 x86_64 JVM: OpenJDi 64-बिट सर्वर VM JetBrains sro macOS 10.13.3.3 द्वारा।

और डेटाबाइंडिंग केवल मेरे ऐप build.gradle में इसको सक्षम करके

apply plugin: 'kotlin-kapt'

और फिर

    dataBinding {
        enabled = true
    }

और यह भी मेरे gradle.wrapper गुणों में

android.databinding.enableV2=true

मेरी भी यही त्रुटियां थीं:

could not find the DataBindingComponent class.

मेरे पास उनमें से 100 से अधिक थे। यह पता चला कि वे त्रुटियां महत्वपूर्ण नहीं थीं और आईडीई द्वारा सही अंतर्निहित त्रुटि नहीं दिखाई गई थी। इसलिए, मैंने उन त्रुटियों की संख्या में वृद्धि की है जो कि कोटलिन कंपाइलर इसे build.gradle में जोड़कर प्रदर्शित कर सकते हैं:

dataBinding {
    enabled = true
}
kapt {
        javacOptions {
            // Increase the max count of errors from annotation processors.
            // Default is 100.
            option("-Xmaxerrs", 500)
        }
    }

अचानक, उन सभी फर्जी गड़बड़ियों के ठीक नीचे, मैंने वास्तविक को एक असफल मर्ज संघर्ष समाधान के कारण देखा all


नमस्ते, मैं इसे एक जावा परियोजना में कैसे करूँ?
जॉन

शुरू में DataBindingComponent के साथ करने के लिए नकली त्रुटियों का गुच्छा। तब जब मैं त्रुटि आकार बढ़ाता हूं। मैंने देखा कि यह खंजर के साथ गलत गुंजाइश का उपयोग करके मेरे साथ एक मुद्दा था।
गंदी_विद्या

यह एकमात्र समाधान था जिसने काम किया..धन्यवाद की मदद की।
दीपक गणाचारी

कमांड लाइन से निर्माण करते समय प्रतीक DataBindingComponent नहीं पा सकते ।/gradlew assembleDebug
चेतन चौधरी

3
मैं संदेश के बिना त्रुटियों को खोजने के लिए अपने जीवन में दिन बिताता हूं ...! धन्यवाद दोस्त, आप वर्ष के पुरुष हैं :-D
m.zander

31

बस कंपाइलर निर्भरता को हटा दें (kapt "com.android.databinding: compiler: $ gradleVersion), जो मेरे लिए काम करता है। जाहिर है, यह 3.2.0 से बाध्यकारी प्लगइन के साथ प्रदान किया गया है।


21

यदि आप पहले से ही एंड्रॉइड स्टूडियो 3.2 स्थिर संस्करण का उपयोग कर रहे हैं , तो बस निर्भरता को हटा दें, यह पहले से ही शामिल है।


3
मेरे लिए इसे हल किया, धन्यवाद। उन्हें IDE में एक टूलटिप / ऑटोफिक्स जोड़ना चाहिए था।
स्पेसमनी सेप

3
इसके लिए डबल अप करें। मेरी त्रुटि थोड़ी अलग थी लेकिन इसका मूल कारण था। मामले में कोई इसके लिए जाता है:Caused by: java.lang.NullPointerException at java.io.File.<init>(File.java:277) at android.databinding.annotationprocessor.ProcessExpressions.onHandleStep(ProcessExpressions.java:77) at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.runStep(ProcessDataBinding.java:203) at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.access$000(ProcessDataBinding.java:188) ...
cayleyh

20

एंड्रॉइड स्टूडियो 3.3.1 पर समान त्रुटि, एंड्रॉइड का उपयोग करके कोई कोटलिन, शुद्ध जावा नहीं है

build.gradle शामिल हैं

    dataBinding {
        enabled true
    }

gradle.properties शामिल हैं

android.useAndroidX=true
android.enableJetifier=true
android.databinding.enableV2=true

मैं इस मुद्दे पर घंटों तक लड़ता रहा और फिर इसे इस प्रकार हल किया:

अस्थायी रूप से अपनी परियोजना में DataBindingComponent के लिए एक खाली इंटरफेस की घोषणा (में src/main/java/androidx.databinding/DataBindingComponent.java)

package androidx.databinding;

public interface DataBindingComponent {
}

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

error: Parameter type java.lang.Boolean of setter method should be boolean to match getter

फिक्सिंग और फिर डमी इंटरफ़ेस को हटाने से कंपाइलर फिर से खुश हो जाता है।


इस उत्तर के लिए बहुत बहुत धन्यवाद। मैंने इस मुद्दे की वजह से बहुत संघर्ष किया है।
फारूक ज़मान

इसके लिए बहुत बहुत धन्यवाद
kkl260

1
OMG, धन्यवाद, धन्यवाद, धन्यवाद। ये काम किया !! धन्यवाद! मैं androidx और अंतिम चरण में पलायन कर रहा था, खत्म होने के बाद, मुझे ओपी की तरह 70 त्रुटियां थीं। आपकी चाल में 13 अंतर्निहित त्रुटियाँ सामने आईं। क्या मैंने आपको धन्यवाद कहा? : डी
अल्बर्टो गैरीडो

यह अब एंड्रॉइड स्टूडियो 3.6.1 है। वास्तविक त्रुटि को देखने के लिए अभी भी इस चाल का पालन करने की आवश्यकता है। :(
क्रिश

यह भी खूब रही! धन्यवाद!
ताकेशी कागा

15

यह जो मूल्य है, उसके लिए मेरे पास एक समान मुद्दा था और यह एक खराब कक्ष क्वेरी का परिणाम था जो डेटा बाइंडिंग से संबंधित था।


1
मेरे लिए काम करता है, मैंने चेक के लिए टाइपकोनेरेटर को निष्क्रिय कर दिया और इसने काम किया
मुरट VAROL

2
धन्यवाद! मेरे पास रूम को लेकर भी एक मुद्दा था। मैं ArrayListएक क्वेरी के लिए एक वापसी के रूप में उपयोग कर रहा था जहां इसे होना चाहिए List
वैन

1
ये गलत है। कमरे में एक पूरी तरह से असंबंधित मुद्दा इस मुद्दे का कारण बनता है।
कार्सन होल्जाइमर

यह कक्ष के लिए अनन्य नहीं है। कोई अन्य एनोटेशन प्रोसेसर जो आप उपयोग करते हैं, संकलन के दौरान एक अपवाद फेंक सकते हैं, डेटाबाइंडिंग प्रोसेसर के खेलने से पहले विफल हो जाता है।
विटोर ह्यूगो श्वाब

और वह त्रुटि प्रश्न के रूप में बताई गई त्रुटि के बीच में दफन रह गई।
रीजेश पीके

14

मेरे मामले में यह एक खराब खंजर था। मैं एक मॉड्यूल पर एक कस्टम विधि पर डालने के बजाय कस्टम गुंजाइश रखता हूं।

¯\_(ツ)_/¯


1
मेरे पास एक एनोटेशन मान और विधि पैरामीटर के लिए एक लापता आयात विवरण था। डैगर 2.19 के साथ मुझे डेटबाइंडिंग बकवास ऊपर मिली। सौभाग्य से डैगर 2.21 ने मुझे सही दिशा में इशारा किया।
यूजेन पिंचेक

8

मेरी भी यही समस्या थी।

केवल DataBinding के लिए बदलने Kaptसे annotationProcessorमेरे लिए समस्या तय हो गई।


7

एंड्रॉइड स्टूडियो 3.2 में अपडेट होने पर मुझे इस समस्या का सामना करना पड़ता है, मैं 3.2.0 से 3.1.4 में ग्रेडल प्लगइन बदल देता हूं और यह ठीक काम करता है -> मुझे लगता है कि यह एक ग्रेड समस्या है, यह बहुत जल्द ही अपडेट हो जाएगा


Gradle बदलने के लिए और kapt दूर करने की कोशिश "3.1.2 com.android.databinding: संकलक"
B.mansouri

मैं kapt "com.android.databinding: compiler: 3.1.2" का उपयोग करने के लिए बिल्कुल भी नहीं हूं, लेकिन मुझे समस्या का पता चला, यह गलत पैकेज संरचना और एक फ़ोल्डर से दूसरे में फ़ाइलों को स्थानांतरित करने के कारण था
संजीव

6

खंजर भी इसका कारण हो सकता है। 2.17 से 2.16 तक डैगर संस्करण बदलना इस समस्या को अभी के लिए ठीक कर सकता है।

चर्चा: https://github.com/google/dagger/issues/1245

अपडेट करें

डैगर 2.18 बाहर है, लेकिन दुर्भाग्य से यह तब भी काम नहीं करेगा जब मैंने परीक्षण किया था (क्या मुझे कुछ याद है?)।

Update2

डैगर 2.19 भी काम नहीं करेगा और चर्चा बंद है।

लेकिन Google जारीकर्ता में , समाधान / वर्कअराउंड हैं। मैंने परीक्षण किया और उन्होंने काम किया। यदि आप नवीनतम डैगर का उपयोग करना चाहते हैं तो इसे जांचें।

Update3

एंड्रॉइड स्टूडियो 3.3 में डैगर समस्या को ठीक किया गया है।


मुझे यह भी पूरा यकीन है कि यह मेरे / हमारे मामले में Dagger2 के कारण होता है। DataBindingComponent के आधिकारिक दस्तावेज में भी खंजर का उल्लेख किया गया है: "यदि Dagger 2 का उपयोग किया जाता है, तो डेवलपर को इस इंटरफ़ेस का विस्तार करना चाहिए और एक घटक के रूप में विस्तारित इंटरफ़ेस को एनोटेट करना चाहिए।" (स्रोत: developer.android.com/reference/android/databinding/… )। लेकिन मुझे समझ में नहीं आ रहा है कि यहाँ क्या करना है और अगर यह त्रुटि को ठीक करेगा।
muetzenflo

@muetzenflo आपकी जानकारी आशाजनक लगती है। मैं उस घटक को विस्तारित करने का प्रयास करूंगा और देखूंगा कि क्या वह त्रुटि को ठीक कर सकता है।
डेवी रीड

@muetzenflo मैं समाधान की कोशिश की है, लेकिन यह काम नहीं किया। मुझे लगता है कि यह केवल तभी प्रभावी होता है जब ऐप चल रहा हो लेकिन समस्या संकलन समय में होती है।
डेवी रीड

2.19 बाहर है और यह मुद्दा अभी भी बना हुआ है
अर्नेस्ट ज़मेल्स्की

@ErnestZamelczyk तुम सही हो। लेकिन मुझे जारीकर्ता में कुछ वर्कअराउंड मिला। यदि आप रुचि रखते हैं तो अद्यतन उत्तर की जाँच करें।
डेवी रीड

5

मैंने आखिरकार अपनी समस्या को ठीक कर लिया क्योंकि मैं एंड्रॉइड एनोटेशन का उपयोग कर रहा था और उन्होंने एक नया संस्करण 4.5.1 जारी किया 1 घंटे पहले था, जहां वे ग्रेड प्लगइन्स 3.2.0 का समर्थन करते हैं।

मैं एक सप्ताह के लिए इस बग को खोज रहा था और अब मैं खुश हूं। आशा है कि यह आपकी मदद करता है, भी!


3

मेरा मुद्दा यह था कि मैंने अपने Loginमॉड्यूल के लिए डेटा बाइंडिंग को सक्षम करने की कोशिश की, लेकिन मॉड्यूल को नहीं App। जोड़ने के बाद:

dataBinding {
    enabled = true
}

करने के लिए Appमॉड्यूल और से निकाल दिया था Loginमॉड्यूल, यह काम किया।


2

मैंने कोशिश की है classpath 'com.android.tools.build:gradle:3.2.0-beta05' स्पष्ट निर्भरता के साथ और बिनाkapt "androidx.databinding:databinding-compiler:3.3.0-alpha06"

और अभी भी वही अपवाद हो रहा है।

मैंने भी 3.3.0-अल्फा 06 की कोशिश की है लेकिन कुछ भी नहीं बदला है।

अद्यतन: 2 दिनों के बाद, मैंने इस मुद्दे को हल किया। मैंने क्या किया है, मैन्युअल रूप से उन सभी फाइलों को ठीक कर रहा है जिनकी समस्याएं थीं, क्योंकि एंड्रॉइड पर माइग्रेशन (आयात और एक्सएमएल आदि में गलत पैकेज)। इसके अतिरिक्त, मुझे ग्लाइड को 4.7 से 4.8 तक अपडेट करने की आवश्यकता थी। जब मैंने सभी लाल फ़ाइलों को ठीक किया तो समस्या गायब हो गई।


2

यह मेरी सबसे बेवकूफाना गलती है! मैंने वास्तव में डेटाबाइंडिंग के लिए एक निजी चर बनाया है और यह इस मुद्दे को पैदा कर रहा है।

बस एक का उपयोग करें lateinit var binding और यह काम किया।

यह किसी की मदद कर सकता है!


इससे मेरे साथ समस्या हल हो गई। धन्यवाद! इसे खोजने के लिए मुझे 2 घंटे लगे और आपकी टिप्पणी देखने के लिए बहुत दूर तक स्क्रॉल नहीं किया। :(
ओलिवर मेट्ज़

खुशी है कि यह आपकी मदद की! डेटाबाइंडिंग त्रुटियों की व्याख्या करना कठिन है !!
Kannan_SJD

2

बस kapt "com.android.databinding ..." निर्भरता को हटा दें। यदि आप एंड्रॉइड स्टूडियो 3.2 या अधिक संस्करण का उपयोग कर रहे हैं।


2

मेरे मामले में, यदि आपका डायनामिक फ़ीचर मॉड्यूल का उपयोग कर रहा है:

build.gradle (ऐप्लिकेशन)

dataBinding {
    enabled true
}

इसे रूट और चाइल्ड ग्रेडल फ़ाइलों दोनों पर सक्षम करने की आवश्यकता है (kapt प्लगइन जोड़ना न भूलें)।


THANNNNKKKKKK YOOOOOUUUUUUUU FFS
इलनासस

1

मैं इसे एंड्रॉइड स्टूडियो को कैनरी 16 में अपडेट कर रहा हूं और यह gradle.wrapper.properties मेंdistributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip


2
मैं पहले से ही कैनरी 16 और ग्रेडल 4.7 का उपयोग कर रहा हूं, लेकिन यह काम नहीं कर रहा है।
जूलियानो नेव्स सिल्वा ओलिवेरा

मैं एंड्रॉइड स्टूडियो 3.3 कैनरी 11 और ग्रेडल 4.10 का उपयोग कर रहा हूं, और मुझे त्रुटि मिल रही है, इसलिए यह समाधान मेरे लिए नहीं है
संजीव

1

मैंने जोड़कर त्रुटि हल की

android.useAndroidX=true
android.enableJetifier=true

मेरी परियोजना के gradle.properties फ़ाइल में


मेरे लिए काम नहीं किया। ऊपर वाला क्या करता है? आपको यह कहाँ से मिला?
अमीर उवाल

1
@auval android.useAndroidX:जब सेट किया जाता है true, तो यह ध्वज इंगित करता है कि आप अभी से AndroidX का उपयोग शुरू करना चाहते हैं। यदि ध्वज अनुपस्थित है, तो Android Studio ऐसा व्यवहार करता है जैसे कि ध्वज सेट किया गया था falseandroid.enableJetifier:जब सेट किया जाता है true, तो यह ध्वज इंगित करता है कि आप टूल सपोर्ट (एंड्रॉइड ग्रैगल प्लगइन से) स्वचालित रूप से मौजूदा थर्ड-पार्टी लाइब्रेरी को रूपांतरित करना चाहते हैं जैसे कि वे AndroidX के लिए लिखे गए थे। यदि ध्वज अनुपस्थित है, तो Android Studio ऐसा व्यवहार करता है जैसे कि ध्वज सेट किया गया था false
एडिजे क्रूसेर

मेरे लिए काम नहीं किया, मैं एंड्रॉइड स्टूडियो 3.3 का उपयोग कर रहा हूं ये पैरामीटर पहले से मौजूद हैं
संजीव

यह निश्चित रूप से आवश्यक है यदि आप एंड्रॉइड एक्स पर माइग्रेट करते हैं और डेटाबाइंडिंग आदि का उपयोग करते हैं, तो मैं एक मशीन पर माइग्रेट करता हूं, लेकिन त्रुटि एक अलग दिखाई दी क्योंकि gradle.properties स्रोत नियंत्रण में नहीं है
डैनियल विल्सन

1

मेरे मामले में इस मुद्दे को बदलकर हल किया गया था :

androidExtensions.experimental = true

(यानी एक लाइनर के रूप में DSL को ढालें)

सेवा

androidExtensions {
    experimental = true
}

इसके अलावा could not find the DataBindingComponent classमैं भी error: incompatible types: NonExistentClass cannot be converted to Annotationसाथ जुड़ा थाkotlinx.android.parcel.Parcelize एनोटेशन (@ पार्सेलाइज़) से

एंड्रॉइड स्टूडियो 3.3; Gradle-4.10.1-सभी; tools.build:gradle 3.3.0


1

एक ही मुद्दा था जब मैं डेटाबाइंडिंग में कक्षा आयात कर रहा था, जो मौजूद नहीं था। इसका भी प्रयोग करें

allprojects {
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs << "-Xmaxerrs" << "1000"
        }
    }
}

समस्या को खोजने के लिए सभी त्रुटि संदेशों को दूर करने के लिए। मेरे प्रोजेक्ट के लिए यह 50 तक सीमित था।


1

मेरे लिए, मेरी लेआउट फ़ाइल में कोई त्रुटि थी। मैंने एक ऐसे समारोह का उल्लेख किया जो अस्तित्वहीन था।

android:text="@{() -> sleepTrackerViewModel.nightStrings}"

नीचे समाधान है:

android:text="@{sleepTrackerViewModel.nightStrings}"


0

प्रयास करने के लिए कुछ और :) मैं Android स्टूडियो 3.2 (RC3) में GithubBrowserSample प्राप्त करने का प्रयास कर रहा था। डेटबाइंडिंग पर मुझे बहुत सी अजीब त्रुटियाँ मिलती रहीं, हालांकि यह मुख्य बिल्ड.ग्रेड में डेटा बाइंडिंग संस्करणों को निर्दिष्ट नहीं करता है। समाधान को इन दो लाइनों को gradle.properties से निकालना था :

org.gradle.jvmargs=-Xmx4536m
android.databinding.enableV2=true

0

मेरी स्थिति:

Android Studio v3.2.1

com.android.tools.build:gradle:3.2.1

https://services.gradle.org/distributions/gradle-4.10.2-all.zip

मैंने पाया कि मेरे लेआउट से डेटाबाइंडिंग को हटाकर, ऐप को फिर से स्थापित करना और फिर उसमें डेटाबाइंडिंग को वापस जोड़ना इस मुद्दे को निर्धारित करता है।

मैंने DataBindingUtil.setContentView(...)सिर्फ setContentView(...)अपनी गतिविधि लेआउट को बदलकर नंगे न्यूनतम में बदल दिया है :

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="hello"/>

</FrameLayout>

फिर टुकड़े टुकड़े में वापस databinding जोड़ें।


0

मेरे मामले में एक आयात त्रुटि थी में फ़ाइलों में से एक में थी। बस उस फ़ाइल को खोलने से स्वचालित रूप से आयात होने लगा और उसके बाद परियोजना का निर्माण हुआ।

यह एक अफ़सोस की बात है, कि एएस ने इसे शून्य संकेत दिया, न ही त्रुटि स्टैकट्रेस।

मामले में पोस्ट किए गए उत्तर से कुछ भी मदद नहीं करता है - बस परियोजना में सभी फाइलों के माध्यम से सर्फ करें और एक फ़ाइल की तलाश करें जिसमें गलत आयात विवरण है।


0

यह घाट में एक बग है। यहाँ अगले अद्यतन तक अब के लिए एक समाधान है। इसे अपने प्रोजेक्ट में रखें:

buildscript {
    dependencies {
        classpath 'com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta02'
    }
}

0

यदि आप डेटारूम लाइब्रेरी का उपयोग कर रहे हैं, तो अपने DAO कक्षाओं में @Dao एनोटेशन जांचें। मेरे मामले में, मैं RoomDatabase'Dao के अपने इंटरफ़ेस में @Dao जोड़ना भूल गया।


0

उत्पन्न इंटरफेस के लिए त्रुटियों का निर्माण करें जैसे DataBindingComponentआमतौर पर भ्रामक होते हैं। किसी अन्य बिल्ड त्रुटियों को देखने और पहले ठीक करने का प्रयास करें, फिर पुन: स्थापित करें।


0

मुझे ग्रैडल से निम्नलिखित आयात को हटाना पड़ा,

androidx.room:room-compiler:2.1.0-alpha06

भले ही इसका अजीब मुद्दा हो, बस आवश्यक आयातों को हटाने की कोशिश करें, यह काम करना चाहिए।


0

यदि कक्ष डेटाबेस के साथ उपयोग कर रहे हैं, तो अपने सभी डीएओ वर्गों की जांच करें यदि आपके पास कोई आयात मुद्दा है या निर्दिष्ट आवश्यक प्रकार का उपयोग नहीं कर रहा है @TypeConverters, तो यह त्रुटि भ्रामक है, और यदि आप प्रोजेक्ट स्तर ग्रेडेल बिल्ड टूल संस्करण को नवीनतम में अपडेट करते हैं, तो इसे ठीक किया जाना चाहिए। मैंने उपयोग किया classpath 'com.android.tools.build:gradle:3.4.0'और सही ढंग से त्रुटि हुई।


0

मेरे मामले के लिए कक्ष डेटाबेस आइटम वर्ग में कुछ त्रुटि थी ... त्रुटि निजी संशोधक के बारे में थी जो कि कक्ष डीज़ल वर्ग के सदस्य चर के लिए सार्वजनिक होनी चाहिए।

का प्रयोग करें और कमांड लाइन का पता लगाने ./gradlew assembleDebug स्टैकट्रेस को देखने के लिए।

#Rat #Database #Table class #DAO

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.