অ্যান্ড্রয়েড স্টুডিও 3.2 ক্যানারি 16 কোটলিন প্রকল্পে ডেটাবাইন্ডিং কম্পোনেন্টটি সন্ধান করতে পারে না


91

আমি সবেমাত্র কোটলিন সক্ষম করে অ্যান্ড্রয়েড স্টুডিও 3.2 ক্যানারি 16 এ একটি নতুন প্রকল্প তৈরি করেছি। তারপরে আমি ডেটা বাঁধাই সক্ষম করেছিলাম, তবে এটি একটি ত্রুটি পেয়ে বলছে যে এটি ডেটাবাইন্ডিং কম্পোনেন্ট শ্রেণিটি খুঁজে পাচ্ছে না।

এখানে আমার প্রকল্প গ্রেড:

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

আমার প্রকল্পে কী ভুল?

PS: সমস্যাটি অ্যান্ড্রয়েড স্টুডিও ৩.১.২ এও ঘটে


আপনি কি কোন সমাধান পেয়েছেন?
ব্রিজেশ জোশী

@ ব্রিজেশ জোশি আমার উত্তর নীচে দেখুন
এডিজে ক্রুসার

আমার জন্য সত্য ত্রুটি আসলে এর পরে মুদ্রিত হয়েছিল। ত্রুটিটি ঠিক করার পরে, এইটি পাশাপাশি চলে যায়।
মাইগড

4
আমার ক্ষেত্রে অন্য কোনও ত্রুটি লগতে দেখানো হয়নি, তবে আমার ডিফগুলি পর্যালোচনা করার পরে আমি কিছু কেটি ফাইলে একটি অপ্রয়োজনীয় টীকা পেয়েছি। আমদানি ঠিক করার পরে, কাজগুলি তৈরি করুন। ক্যাপ্ট প্রসেসরের কিছু সমস্যা বলে মনে হচ্ছে।
androidguy

4
android.databinding.enableV2=false android.enableExperimentalFeatureDatabinding = falsegrade.propertiesআমার সমস্যার সমাধান করতে এটি যুক্ত করা
এমএমকে 10

উত্তর:


58

অ্যান্ড্রয়েড রিফ্যাক্টরিংয়ের অংশ হিসাবে ডেটাবাইন্ডিং লাইব্রেরিগুলি রিফ্যাক্টর করা হচ্ছে।

আমি Google এর ম্যাভেন সংগ্রহস্থল থেকে databinding টীকা প্রসেসর নির্ভরতা লিংক পাওয়া এখানে

আমি সেখান থেকে আসল গ্রেড নির্ভরতা তৈরি করেছি।

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

অ্যান্ড্রয়েড স্টুডিও ৩.২.০-বিটা0১ হিসাবে আপডেট করুন , ডাটাবেইন্ডিং এর গ্রেড ফাইলে ঘোষিত করার জন্য তার এন্ডোটেশন প্রসেসরের নির্ভরতা আর প্রয়োজন নেই, যেহেতু ডেটাবাইন্ডিং তার নির্ভরতা সমাধানে সক্ষম।


4
আমি এই নির্ভরতা সরিয়ে ফেলেছি এবং নীচের সমস্ত সমাধান চেষ্টা করেছি তবে কিছুই কাজ করছে বলে মনে হচ্ছে না
সঞ্জীব

আপনি কোন স্টুডিও সংস্করণটি ব্যবহার করছেন?
স্যামুয়েল রবার্ট

অ্যান্ড্রয়েড স্টুডিও ৩.৩ ক্যানারি ১১ গ্রেড ৪.১০ সহ
সঞ্জীব

ত্রুটি: ডেটাবাইন্ডিং কম্পোনেন্টের প্রতীকটি খুঁজে পাচ্ছে না, আমি ডাটা বাঁধাই গ্রেডে ট্যুর করতে সক্ষম হয়েছি, কী সমস্যা তা আমি জানি না
সঞ্জীব

গ্রেডে ডাটাবেইন্ডিং সক্ষম করেছেন?
স্যামুয়েল রবার্ট

62

নিম্নলিখিত সেটআপ সহ

অ্যান্ড্রয়েড স্টুডিও 3.2.1 বিল্ড # এআই -181.5540.7.32.5056338, 8 অক্টোবর, 2018 জেআরই: 1.8.0_152-রিলিজ -1136-বি06 x86_64 জেভিএম: জেটব্রেইনস sro macOS 10.13.3 দ্বারা ওপেনজেডকে 64-বিট সার্ভার ভিএম

এবং ডেটাবাইন্ডিংটি কেবল আমার অ্যাপ্লিকেশন বিল্ড.gradle এ থাকার মাধ্যমে সক্ষম করে

apply plugin: 'kotlin-kapt'

এবং তারপর

    dataBinding {
        enabled = true
    }

এবং এটি আমার গ্রেড.ওয়ার্পার বৈশিষ্ট্যগুলিতেও

android.databinding.enableV2=true

আমার একই ত্রুটি ছিল:

could not find the DataBindingComponent class.

আমি তাদের মধ্যে 100 এরও বেশি ছিল। দেখা গেল যে ত্রুটিগুলি গুরুত্বপূর্ণ ছিল না এবং সত্য অন্তর্নিহিত ত্রুটি আইডিই দ্বারা প্রদর্শিত হয়নি। অতএব, কোটলিন সংকলকটি বিল্ড.g্রেডলে এটি যোগ করে যে ত্রুটিগুলি প্রদর্শন করতে পারে তার সংখ্যা আমি বাড়িয়েছি:

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

হঠাৎ করে, এই সমস্ত নকল ত্রুটির ঠিক নীচে, আমি ব্যর্থ সংহত দ্বন্দ্বের সমাধানের কারণে আসলটি দেখেছি 😔


হাই, আমি কোনও জাভা প্রকল্পে এটি কীভাবে করব?
তোসিন জন

প্রাথমিকভাবে ডেটাবাইন্ডিং কম্পোনেন্টের সাথে করণে জাল ত্রুটির গোছা। তারপরে আমি যখন ত্রুটির আকার বাড়িয়ে দেব। আমি ড্যাজারের সাথে ভুল স্কোপটি ব্যবহার করে দেখেছি এটি আমার কাছে সমস্যা।
ফিলিটি_উইজার্ড

এটিই ছিল একমাত্র সমাধান যা কাজ করেছিল .. অনেক অনেক ধন্যবাদ..এই সাহায্য করেছিল।
দীপক গণাচারি

./Gradlew એસেম্বলডিবগ ব্যবহার করে কমান্ড লাইন থেকে বিল্ড করার সময় ডেটাবাইন্ডিং কম্পোনেন্টটি সন্ধান করতে পারে না
চেতন

4
আমি বার্তা ব্যতীত ত্রুটি অনুসন্ধান করতে আমার জীবনের বেশ কয়েকটি দিন ব্যয় করি ...! ধন্যবাদ সাথী, আপনি বছরের সেরা মানুষ :-D
এম.জান্ডার

31

কেবল আমার জন্য কাজ করা সংকলক নির্ভরতা (কেপট "com.android.databinding: সংকলক: $ গ্রেডল ভার্সন) মুছুন App দৃশ্যত, এটি বাইন্ডিং প্লাগইনটি 3.2.0 থেকে সরবরাহ করা হয়েছে।


21

আপনি যদি ইতিমধ্যে অ্যান্ড্রয়েড স্টুডিও ৩.২ স্থিতিশীল সংস্করণ ব্যবহার করেন তবে কেবল নির্ভরতা সরিয়ে ফেলুন, এটি ইতিমধ্যে অন্তর্ভুক্ত রয়েছে।


4
আমার জন্য এটি সমাধান, আপনাকে ধন্যবাদ। আইডিইতে তাদের একটি টুলটিপ / অটোফিক্স যুক্ত করা উচিত ছিল।
স্পেসমুনকি

4
এই জন্য দ্বিগুণ। আমার ত্রুটিটি অন্যরকম ছিল তবে এটির মূল কারণ। যদি কেউ এর জন্য 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) ...
গুগল

20

অ্যান্ড্রয়েড স্টুডিও 3.3.1 এ একই ত্রুটি, অ্যান্ড্রয়েডেক্স ব্যবহার করে কোনও কোটলিন, খাঁটি জাভা নেই

build.gradle থাকে

    dataBinding {
        enabled true
    }

গ্রেড.প্রোপার্টি থাকে

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

আমি এই সমস্যাটি কয়েক ঘন্টা ধরে লড়াই করে যাচ্ছি এবং এরপরে এটি সমাধান করেছি:

আপনার প্রকল্পের (ইন src/main/java/androidx.databinding/DataBindingComponent.java) ডেটাবাইন্ডিং কম্পোনেন্টের জন্য অস্থায়ীভাবে একটি ফাঁকা ইন্টারফেস ঘোষণা করুন

package androidx.databinding;

public interface DataBindingComponent {
}

এটি সংকলন করুন এবং ত্রুটি চলে যাবে। তবে এখন আসল মূল ত্রুটি প্রকাশিত হবে। যেটি আসলে সমস্ত সমস্যার কারণ হয়ে উঠছিল তবে কোনওভাবে গ্রাস করা হয়েছিল। আমার ক্ষেত্রে এটি অটোভ্যালু থেকে এসেছিল যে ইঙ্গিত করে যে আমি এটিকে ভুলভাবে ব্যবহার করছি

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

এটি সংশোধন করে এবং তারপরে ডামি ইন্টারফেস অপসারণ করে সংকলকটিকে আবার খুশি করে।


এই উত্তরের জন্য অনেক ধন্যবাদ। এই সমস্যাটির কারণে আমি অনেক লড়াই করেছি।
ফারুক জামান

এর জন্য আপনাকে অনেক ধন্যবাদ
kkl260

4
ওএমজি, আপনাকে ধন্যবাদ, আপনাকে ধন্যবাদ, আপনাকে ধন্যবাদ। এই কাজ !! ধন্যবাদ! আমি অ্যান্ড্রয়েডক্সে স্থানান্তরিত হয়েছিলাম এবং শেষ পর্যায়ে, সমাপ্তির পরে, আমার ওপি এর মতো 70 টি ত্রুটি হয়েছিল। আপনার কৌশলটি অন্তর্নিহিত 13 টি ত্রুটি প্রকাশ করেছে। আমি কি আপনাকে ধন্যবাদ বলেছিলাম? : ডি
আলবার্তো গ্যারিডো

এটি এখন অ্যান্ড্রয়েড স্টুডিও 3.6.1। প্রকৃত ত্রুটি দেখতে এখনও এই কৌশলটি অনুসরণ করা দরকার। :(
কৃষ্ণ

এটা অসাধারণ! ধন্যবাদ!
তাকেশী কাগা

15

এটির মূল্যের জন্য, আমারও একই রকম সমস্যা ছিল এবং এটি একটি খারাপ ঘর অনুসন্ধানের ফলাফল যা ডেটা বাঁধাইয়ের সাথে সম্পর্কিত।


4
আমার জন্য কাজ করে, আমি চেকের জন্য টাইপ কনভার্টারটি অক্ষম করেছিলাম এবং এটি কাজ করে
মুরাত

4
ধন্যবাদ! রুম সম্পর্কেও আমার একটা সমস্যা ছিল। আমি ArrayListএকটি ক্যোয়ারিতে যেখানে এটি হওয়া উচিত তার ফিরতি হিসাবে ব্যবহার করছিলাম List
ভ্যান

4
এইটা খারাপ. ঘরে কোনও সম্পূর্ণ সম্পর্কহীন সমস্যা এই সমস্যার কারণ হয়ে দাঁড়ায়।
কারসন হলঝেইমার

এটি রুমে একচেটিয়া নয়। আপনি যে কোনও এনটোটেশন প্রসেসর ব্যবহার করেন তা সংকলনের সময় একটি ব্যতিক্রম ছুঁড়ে ফেলতে পারে, ডেটাবাইন্ডিং প্রসেসরটি খেলার আগে ব্যর্থ হয়।
ভিজিটর হুগো শোয়াব

এবং সেই ত্রুটিটি প্রশ্ন হিসাবে বর্ণিত ত্রুটিটির মধ্যে সমাহিত ছিল।
রিজেশ পিকে

14

আমার ক্ষেত্রে এটি একটি খারাপ ডাগর টিকা ছিল। আমি কোনও সরবরাহ ব্যবস্থায় রাখার পরিবর্তে মডিউলটিতে কাস্টম স্কোপ রাখি।

¯\_(ツ)_/¯


4
টিকা মান এবং পদ্ধতির প্যারামিটারের জন্য আমার একটি অনুপস্থিত আমদানি বিবৃতি ছিল। ড্যাগার ২.১৯ এর সাথে আমি উপরে ডেটাবাইন্ডিংয়ের বাজে কথা পেয়েছি। ভাগ্যক্রমে ড্যাজার 2.21 আমাকে সঠিক দিকে নির্দেশ করেছেন।
ইউজেন পেচানেক

8

আমারও একই প্রশ্ন ছিল.

শুধুমাত্র ডেটাবাইন্ডিংয়ের জন্য পরিবর্তন Kaptকরা annotationProcessorআমার জন্য সমস্যাটি স্থির করে।


7

অ্যান্ড্রয়েড স্টুডিও ৩.২-এ আপডেট করার সময় আমি এই সমস্যার মুখোমুখি হয়েছি, আমি গ্রেড প্লাগইনটি ৩.২.০ থেকে ৩.১.৪ এ পরিবর্তন করি এবং এটি ভাল কাজ করে -> আমি মনে করি এটি একটি গ্রেড সমস্যা, খুব শিগগিরই এটি আপডেট হয়ে যাবে


গ্রেড পরিবর্তন করার চেষ্টা করুন এবং "কম.অ্যান্ড্রয়েড.ডাটাবাইন্ডিং: সংকলক: 3.1.2"
বিমানসৌরি

আমি ক্যাপ্ট "কম.অ্যান্ড্রয়েড.ডাটাবাইন্ডিং: সংকলক: ৩.১.২" ব্যবহার করছি না, তবে আমি সমস্যাটি বুঝতে পেরেছি, এটি ভুল প্যাকেজ কাঠামোর কারণে এবং ফাইলগুলি একটি ফোল্ডার থেকে অন্য ফোল্ডারে সরানোর কারণে হয়েছিল
সঞ্জীব

6

ড্যাজার এর কারণও হতে পারে। ড্যাজার সংস্করণটি ২.১17 থেকে ২.১16 এ পরিবর্তন করা আপাতত এই সমস্যাটি সমাধান করতে পারে।

আলোচনা: https://github.com/google/dagger/issues/1245

হালনাগাদ

ড্যাগার ২.১18 আউট হয়েছে তবে দুর্ভাগ্যক্রমে পরীক্ষা করার পরেও এটি কাজ করবে না (আমি কি কিছু মিস করেছি?)।

আপডেট 2

ড্যাগার 2.19 এছাড়াও কাজ করবে না এবং আলোচনাটি লক হয়ে গেছে।

তবে গুগল ইস্যুয়েট্রেকে , সমাধান / কর্মক্ষেত্র রয়েছে। আমি পরীক্ষা করেছি এবং তারা কাজ করেছে। আপনি সর্বশেষতম ড্যাজারটি ব্যবহার করতে চান কিনা তা পরীক্ষা করে দেখুন।

আপডেট 3

ড্যাজার সমস্যাটি অ্যান্ড্রয়েড স্টুডিও ৩.৩ এ ঠিক করা হয়েছে।


আমি এটাও নিশ্চিত যে এটি আমার / আমাদের ক্ষেত্রে ডাগার 2 দ্বারা সৃষ্ট। ডেটাবাইন্ডিং কম্পোনেন্টের অফিসিয়াল ডকুমেন্টেশন এমনকি ড্যাজারের কথাও উল্লেখ করে: "ডাগার 2 ব্যবহার করা হলে, বিকাশকারীকে এই ইন্টারফেসটি প্রসারিত করা উচিত এবং একটি উপাদান হিসাবে বর্ধিত ইন্টারফেসটি টীকাতে হবে।" (উত্স: বিকাশকারীঅ্যান্ড্রয়েড . com/ references/ android/ databinding/… )। তবে আমি এখানে ঠিক কী করব তা বুঝতে পারছি না এবং এটি ত্রুটিটি ঠিক করে দিবে।
muetzenflo

আপনার ওয়েবসাইটটি প্রতিশ্রুতিবদ্ধ lo আমি সেই উপাদানটি প্রসারিত করার চেষ্টা করব এবং এটি ত্রুটিটি ঠিক করতে পারে কিনা তা দেখুন।
দেউই রেড

@ ময়েটজেনফ্লো আমি সমাধানটি চেষ্টা করেছি কিন্তু এটি কার্যকর হয়নি। আমি অনুমান করি এটি কেবল তখনই কার্যকর হয় যখন অ্যাপটি চলতে থাকে তবে সংকলনের সময় সমস্যাটি ঘটে।
দেউই রেড

২.১৯ আউট আছে এবং সমস্যাটি এখনও রয়েছে
আর্নেস্ট জামেলেজিক

আপনি ঠিক বলেছেন আর্নেস্টজামেলসিজিক তবে ইস্যুয়েট্রেকারটিতে আমি কিছুটা কাজ খুঁজে পেয়েছি। আপনার আগ্রহ থাকলে আপডেট হওয়া উত্তরটি পরীক্ষা করে দেখুন।
দেউই রেড

5

আমি অবশেষে আমার সমস্যাটি সমাধান করেছি কারণ আমি অ্যান্ড্রয়েড টীকাগুলি ব্যবহার করছি এবং তারা একটি নতুন সংস্করণ 4.5.1 1 ঘন্টা আগে প্রকাশ করেছে, যেখানে তারা গ্রেড প্লাগইন 3.2.0 সমর্থন করে।

আমি এই বাগটি এক সপ্তাহের জন্য অনুসন্ধান করছিলাম এবং আমি এখন খুশি। আশা করি এটি আপনাকেও সহায়তা করে!


4

আমার সমস্যাটি ছিল আমি Loginমডিউলটির জন্য নয় তবে আমার মডিউলটির জন্য ডেটা বন্ডিং সক্ষম করার চেষ্টা করেছি App। যোগ করার পরে:

dataBinding {
    enabled = true
}

থেকে Appমডিউল এবং থেকে সরানো Loginমডিউল দেখবেন, এটা কাজ করে।


আপনি স্যার, আমার কর্মজীবন আত্মকর্মসংস্থান সংরক্ষণ। এটি 8 ঘন্টা পরীক্ষার এবং ত্রুটির মতো ছিল like যদিও আমি বলতে চাই, আমি অ্যাপ মডিউলে কেবল "বিল্ডফিটচার্স.ডাটাবাইন্ডিং = ট্রু" অনুপস্থিত ছিল। সমস্ত বৈশিষ্ট্য মডিউল জন্য একই সেট করতে হবে। আপনার জীবন সর্বদা মধু এবং দুধে ভরা হোক।
নালড্রয়েড

2

আমি classpath 'com.android.tools.build:gradle:3.2.0-beta05' স্পষ্ট নির্ভরতা ছাড়াই এবং ছাড়া চেষ্টা করেছিkapt "androidx.databinding:databinding-compiler:3.3.0-alpha06"

এবং এখনও একই ব্যতিক্রম পাচ্ছি।

আমি 3.3.0-alpha06 চেষ্টা করেছি কিন্তু কিছুই পরিবর্তন হয়নি।

আপডেট: 2 দিন পরে, আমি সমস্যাটি সমাধান করেছি। আমি যা করেছি তা হ'ল অ্যান্ড্রয়েডএক্সে স্থানান্তরিত হওয়ার কারণে (আমদানি এবং এক্সএমএলগুলিতে ভুল প্যাকেজ ইত্যাদি) সমস্যাযুক্ত সমস্ত ফাইল ম্যানুয়ালি ফিক্স করা । অতিরিক্তভাবে, আমার 4.7 থেকে 4.8 পর্যন্ত গ্লাইড আপডেট করতে হবে। আমি যখন সমস্ত লাল ফাইলগুলি স্থির করি তখন সমস্যাটি অদৃশ্য হয়ে যায়।


2

এটি আমার সবচেয়ে বোকা ভুল! আমি আসলে ডেটাবাইন্ডিংয়ের জন্য একটি প্রাইভেট ভেরিয়েবল তৈরি করেছি এবং এটিই এই সমস্যার কারণ হয়ে দাঁড়িয়েছে।

শুধু একটি ব্যবহার করুন lateinit var bindingএবং এটি কাজ করে।

এটি কাউকে সাহায্য করতে পারে!


এটি আমার সাথে সমস্যাটি সমাধান করেছে। ধন্যবাদ! এটি খুঁজে পেতে আমাকে 2 ঘন্টা সময় নিয়েছে এবং আপনার মন্তব্য দেখার জন্য খুব বেশি নিচে স্ক্রোল করেননি। :(
অলিভার মেটজ

খুশি এই আপনাকে সাহায্য! ডেটাবাইন্ডিং ত্রুটিগুলি ব্যাখ্যা করা শক্ত !!
কান্নান_জেজেডি

2

কেবল "ক্যাপ.অ্যান্ড্রয়েড.ডাটাবাইন্ডিং ..." নির্ভরতা সরিয়ে ফেলুন। আপনি যদি অ্যান্ড্রয়েড স্টুডিও ৩.২ বা তার থেকে বেশি সংস্করণ ব্যবহার করেন।


2

আমার ক্ষেত্রে, যদি আপনি গতিশীল বৈশিষ্ট্য মডিউলটি ব্যবহার করেন:

build.gradle (অ্যাপ)

dataBinding {
    enabled true
}

এর জন্য মূল এবং শিশু গ্রেড উভয় ফাইলেই সক্ষম করা দরকার (ক্যাপ্ট প্লাগইন যুক্ত করতে ভুলবেন না)।


THANNNNKKKKKKK YOOOOOUUUUUUUUU FFS
ইলানাস

@ জেরোমড আপনি দয়া করে কোন ক্যাপ্ট প্লাগইন যুক্ত করতে পারেন? এছাড়াও, আমার প্রকল্পে আমার কোটলিন না থাকলে কী হবে?
শুভম অগ্রওয়াল

1

আমি এটিকে অ্যান্ড্রয়েড স্টুডিওকে ক্যানারি ১ ​​16 এ আপডেট করে এবং গ্রেড.ওর্পার.প্রেপার্টিগুলিতে এটি ঠিক করেছিdistributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip


4
আমি ইতিমধ্যে ক্যানারি 16 এবং গ্রেডেল 4.7 ব্যবহার করছি, তবে এটি কাজ করছে না।
জুলিয়ানো নুনস সিলভা অলিভিরা

আমি অ্যান্ড্রয়েড স্টুডিও ৩.৩ ক্যানারি ১১ এবং গ্রেডেল ৪.১০ ব্যবহার করছি এবং আমি ত্রুটিটি পাচ্ছি, সুতরাং এই সমাধানটি আমার পক্ষে না
সঞ্জীব

1

আমি যুক্ত করে ত্রুটিটি সমাধান করেছি

android.useAndroidX=true
android.enableJetifier=true

আমার প্রকল্পের গ্রেড.প্রোপার্টি ফাইলগুলিতে


আমার পক্ষে কাজ করেনি। উপরেরটি কী করে? দুই মেয়ে?
আমির উয়াল

4
@ ওভাল android.useAndroidX:সেট করা থাকলে true, এই পতাকাটি ইঙ্গিত দেয় যে আপনি এখন থেকে অ্যান্ড্রয়েডএক্স ব্যবহার শুরু করতে চান। পতাকাটি অনুপস্থিত থাকলে, অ্যান্ড্রয়েড স্টুডিও এমন আচরণ করে যে পতাকাটি সেট করা আছে falseandroid.enableJetifier:যখন সেট করা থাকে true, এই পতাকাটি ইঙ্গিত করে যে বিদ্যমান তৃতীয় পক্ষের লাইব্রেরিগুলিকে অ্যান্ড্রয়েডএক্স-এর জন্য লেখা হয়েছিল তা স্বয়ংক্রিয়ভাবে রূপান্তর করতে আপনার কাছে সরঞ্জাম সমর্থন (অ্যান্ড্রয়েড গ্রেডল প্লাগইন থেকে) থাকতে চান। পতাকাটি অনুপস্থিত থাকলে, অ্যান্ড্রয়েড স্টুডিও এমন আচরণ করে যে পতাকাটি সেট করা আছে false
এডিজা ক্রুসার

আমার পক্ষে কাজ করেনি, আমি অ্যান্ড্রয়েড স্টুডিওটি ব্যবহার করছি 3.3 এই পরামিতিগুলি ইতিমধ্যে উপস্থিত রয়েছে
সঞ্জীব

এই হ 'ল আপনি Android এক্স স্থানান্তর এবং ব্যবহার প্রয়োজন বোধ করা হয় databinding ইত্যাদি আমি এক মেশিন কিন্তু অন্য একটি হাজির ত্রুটি মাইগ্রেট কারণ gradle.properties উৎস নিয়ন্ত্রণ নেই
ড্যানিয়েল উইলসন

1

আমার ক্ষেত্রে সমস্যাটি পরিবর্তন করে সমাধান করা হয়েছিল:

androidExtensions.experimental = true

(অর্থাত্ ওয়ান-লাইনার হিসাবে গ্রেড ডিএসএল)

প্রতি

androidExtensions {
    experimental = true
}

could not find the DataBindingComponent classআমি ছাড়াও আমি error: incompatible types: NonExistentClass cannot be converted to Annotationযুক্ত ছিলkotlinx.android.parcel.Parcelize টীকা (@ পার্সেলাইজ) এর সাথেও ছিলাম

অ্যান্ড্রয়েড স্টুডিও ৩.৩; গ্রেড-4.10.1-সমস্ত; সরঞ্জামসমূহ: বিল্ড: গ্রেডেল ৩.৩.০


1

আমি যখন ডেটাবাইন্ডিংয়ে ক্লাস আমদানি করছিলাম তখন একই সমস্যা ছিল, এটি বিদ্যমান ছিল না। এছাড়াও ব্যবহার

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

সমস্যাটি খুঁজতে সমস্ত ত্রুটি বার্তাগুলি পুনরুদ্ধার করার জন্য। আমার প্রকল্পের জন্য এটি 50 এর মধ্যে সীমাবদ্ধ ছিল।


1

আমার জন্য, আমার লেআউট ফাইলটিতে একটি ত্রুটি ছিল। আমি এমন একটি ফাংশন উল্লেখ করেছি যা অস্তিত্বহীন ছিল।

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

নীচে সমাধানটি দেওয়া হল:

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


0

অন্য কিছু চেষ্টা করার জন্য :) আমি গিথব্রোজারস্যাম্পলটি অ্যান্ড্রয়েড স্টুডিও ৩.২ (আরসি 3) এ পাওয়ার চেষ্টা করছিলাম। এটি মূল বিল্ডড্র্যাডলে ডেটা বন্ডিং সংস্করণ নির্দিষ্ট না করেও আমি ডেটাবাইন্ডিংয়ে প্রচুর অদ্ভুত ত্রুটি পেয়েছি। সমাধানটি হ'ল গ্রেড থেকে এই দুটি লাইন সরানো ছিল।

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

0

আমার অবস্থা:

অ্যান্ড্রয়েড স্টুডিও v3.2.1

com.android.tools.build:gradle:3.2.1

https://services.gradle.org/distribtions/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>

তারপরে আবার টুকরো টুকরো করে ডাটাবেইন্ডিং যুক্ত করুন।


0

আমার ক্ষেত্রে ফাইলগুলির মধ্যে একটিতে আমদানি ত্রুটি ছিল । কেবলমাত্র ফাইলটি খোলার ফলে আমদানি স্বয়ংক্রিয়ভাবে ঘটে এবং তারপরে প্রকল্পটি তৈরি হয়।

এটি অত্যন্ত দুঃখের বিষয়, যে এএস শূন্য ইঙ্গিত দিয়েছিল, ত্রুটি স্ট্যাকট্রেসও করেনি।

পোস্ট করা উত্তর থেকে কিছুই সাহায্য না করে - প্রকল্পের সমস্ত ফাইলের মধ্যে কেবল সার্ফ করুন এবং এমন ফাইলের সন্ধান করুন যাতে ভুল আমদানির বিবৃতি রয়েছে।


0

এটি জেটিফায়ার মধ্যে একটি বাগ। পরবর্তী আপডেট না হওয়া পর্যন্ত এখানে এখনই একটি কার্যকারিতা রয়েছে। এটি আপনার প্রকল্পের গ্রেডে রাখুন:

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

0

আপনি যদি দাতারুম লাইব্রেরি ব্যবহার করছেন তবে আপনার ডিএও ক্লাসে @ দাও টীকাটি দেখুন। আমার ক্ষেত্রে, আমি রুমডাটাবেস'ডাও'র আমার ইন্টারফেসে @ দাও যুক্ত করতে ভুলে গেছি।


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 ক্ষেত্রে স্টেকট্র্যাস দেখতে।

# রুম # ডেটাবেস # টেবিল ক্লাস # ডিওও

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.