Android Studio 3.2 Canary 16 Kotlin projesinde DataBindingComponent sembolü bulunamıyor


91

Kotlin etkinken Android Studio 3.2 Canary 16'da yeni bir proje oluşturdum. Sonra veri bağlamayı da etkinleştirdim, ancak DataBindingComponent sınıfını bulamadığını söyleyen bir hata alıyorum.

İşte benim proje notum:

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

Modül gradle dosyam:

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"
}

Etkinliğimin xml'si:

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

Ve işte derleme çıktısı:

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

Projemin nesi var?

Not: Sorun, Android Studio 3.1.2'de de yaşanıyor


herhangi bir çözüm buldun mu?
Brijesh Joshi

@BrijeshJoshi aşağıdaki
cevabımı görün

Benim için gerçek hata aslında bundan sonra basıldı. Bu hatayı düzelttikten sonra bu da ortadan kalkar.
Mygod

1
Benim durumumda günlükte başka bir hata gösterilmedi, ancak farklarımı gözden geçirdikten sonra bazı kt dosyasında içe aktarılmamış bir açıklama buldum. İçe aktarımı düzelttikten sonra, derleme çalışmaları. Kapt işlemcide bazı problemler var gibi görünüyor.
androidguy

1
android.databinding.enableV2=false android.enableExperimentalFeatureDatabinding = false. grade.propertiessorunumu çözmek için bunu eklemek
MMK

Yanıtlar:


58

Veri bağlama kitaplıkları, androidx yeniden düzenlemesinin bir parçası olarak yeniden düzenleniyor.

Burada Google'ın maven deposundaki veri bağlama ek açıklama işlemci bağımlılığı bağlantısını buldum .

Oradan gerçek gradle bağımlılığını kurdum.

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

Güncelleme Android Studio 3.2.0-beta01'den itibaren, veri bağlama bağımlılığını çözebildiğinden, veri bağlama artık not işlemcisi bağımlılığının gradle dosyasında bildirilmesine gerek duymamaktadır.


4
Bu bağımlılığı kaldırdım ve aşağıdaki tüm çözümleri denedim ama hiçbir şey işe yaramıyor gibi görünüyor
Sanjeev

Hangi stüdyo sürümünü kullanıyorsunuz?
Samuel Robert

4.10 gradle ile Android studio 3.3 Canary 11
Sanjeev

Hata: DataBindingComponent simgesi bulunamıyor, veri bağlamayı kademeli olarak etkinleştiriyorum, sorunun ne olduğunu bilmiyorum
Sanjeev

Derecede DataBinding'i etkinleştirdiniz mi?
Samuel Robert

62

Aşağıdaki kurulumla

Android Studio 3.2.1 Derleme # AI-181.5540.7.32.5056338, 8 Ekim 2018 tarihinde oluşturulmuştur JRE: 1.8.0_152-release-1136-b06 x86_64 JVM: JetBrains sro macOS 10.13.3 tarafından sunulan OpenJDK 64-Bit Sunucu VM

Ve DataBinding basitçe bunu uygulama build.gradle'da bulundurarak etkinleştirin

apply plugin: 'kotlin-kapt'

ve sonra

    dataBinding {
        enabled = true
    }

ve bu da gradle.wrapper özelliklerimde

android.databinding.enableV2=true

Aynı hataları yaptım:

could not find the DataBindingComponent class.

100'den fazlası vardı. Bu hataların önemli olmadığı ve temeldeki gerçek hatanın IDE tarafından gösterilmediği ortaya çıktı. Bu nedenle, Kotlin derleyicisinin görüntüleyebileceği hata sayısını build.gradle'a ekleyerek artırdım:

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

Birdenbire, tüm bu sahte hataların hemen altında, başarısız bir birleştirme çatışma çözümünün neden olduğu gerçek olanı gördüm 😔


Merhaba, bunu bir java projesinde nasıl yaparım?
Tosin John

DataBindingComponent ile yapmak için başlangıçta bir sürü sahte hata. sonra hata boyutunu artırdığımda. Hançerle yanlış dürbün kullanmanın bir sorun olduğunu gördüm.
filthy_wizard

Bu işe yarayan tek çözümdü .. Çok teşekkürler .. yardımcı oldu.
Deepak Ganachari

Komut satırından inşa ./gradlew assembleDebug kullanırken sembol DataBindingComponent bulamıyor
Çetan Chaudhari

3
Hayatımda günlerimi mesajlar olmadan hataları aramak için harcıyorum ...! Teşekkürler dostum, sen yılın adamı
sensin

31

Benim için çalışan derleyici bağımlılığını (kapt "com.android.databinding: derleyici: $ gradleVersion) silin Görünüşe göre 3.2.0'dan itibaren bağlama eklentisi ile sağlanmıştır.


21

Zaten Android Studio 3.2 kararlı sürümünü kullanıyorsanız, sadece bağımlılığı kaldırın, zaten dahil edilmiştir.


3
Benim için çözdüm, teşekkürler. IDE'ye bir araç ipucu / otomatik düzeltme eklemeleri gerekirdi.
SpaceMonkey

3
Bunun için ikiye katlayın. Benim hatam biraz farklıydı ama asıl neden buydu. Birisinin 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) ...
Google'da arama yapması

20

Android Studio 3.3.1'de aynı Hata, Androidx kullanarak Kotlin yok, saf Java yok

build.gradle içerir

    dataBinding {
        enabled true
    }

gradle.properties şunu içerir:

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

Sorunla saatlerdir savaşıyorum ve sonra şu şekilde çözdüm:

Projenizde (in src/main/java/androidx.databinding/DataBindingComponent.java) DataBindingComponent için geçici olarak boş bir arabirim bildirin

package androidx.databinding;

public interface DataBindingComponent {
}

Bırakın derlesin ve hata gider. Ama şimdi asıl kök hatası ortaya çıkacak. Aslında tüm soruna neden olan ama bir şekilde yutulan. Benim durumumda, AutoValue'dan yanlış kullandığımı gösteriyordu

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

bunu düzeltmek ve sonra kukla arabirimi kaldırmak derleyiciyi yeniden mutlu eder.


Bu cevap için çok teşekkürler. Bu konuda çok uğraştım.
Farooq Zaman

Bunun için çok teşekkür ederim
kkl260

1
OMG, teşekkür ederim, teşekkür ederim, teşekkür ederim. Bu işe yaradı !! teşekkür ederim! Androidx'e geçiş yapıyordum ve son aşamalarda bitirdikten sonra OP gibi 70 hata aldım. Numaranız temelde 13 hatayı ortaya çıkardı. Teşekkür ettim mi : D
Alberto Garrido

Şimdi Android Studio 3.6.1. Yine de gerçek hatayı görmek için bu numarayı takip etmeniz gerekiyor. :(
krishh

Bu harika! Teşekkür ederim!
Takeshi Kaga

15

Değeri ne olursa olsun, benzer bir sorun yaşadım ve bu, veri bağlamayla ilgili kötü bir Oda sorgusunun sonucuydu.


1
benim için çalışıyor, tip dönüştürücüyü kontrol için devre dışı bıraktım ve işe yaradı
Murat

2
Teşekkürler! Oda ile ilgili de bir sorunum vardı. ArrayListBir sorguya dönüş olarak kullanıyordum List.
Van

1
Bu kötü. Odada tamamen alakasız bir sorun bu soruna neden olur.
Carson Holzheimer

Bu, Odaya özel DEĞİLDİR. Kullandığınız diğer herhangi bir açıklama işlemcisi, derleme sırasında bir istisna atabilir ve DataBinding işlemcisi devreye girmeden önce başarısız olabilir.
Vitor Hugo Schwaab

ve bu hata, soru olarak belirtilen hata arasında gömülü kaldı.
Reejesh PK

14

Benim durumumda, kötü bir hançer notuydu. Bir Modüle, onu sağlar yöntemine koymak yerine özel kapsam koyuyorum.

¯\_(ツ)_/¯


1
Ek açıklama değeri ve yöntem parametresi için eksik bir import deyimim vardı. Dagger 2.19 ile yukarıdaki veri bağlama saçmalığını anladım. Şans eseri Dagger 2.21 beni doğru yönü gösterdi.
Eugen Pechanec

8

Ben de aynı sorunu yaşadım.

Değişen Kaptiçin annotationProcessorsadece DataBinding benim için sorun giderildi.


7

android studio 3.2'ye güncelleme yaparken bu problemle karşılaşıyorum, gradle eklentisini 3.2.0'dan 3.1.4'e değiştiriyorum ve iyi çalışıyor -> bunun bir gradle problemi olduğunu düşünüyorum, çok yakında güncellenecek


kapt kaldırmak için gradle değiştirip deneyin "com.android.databinding: derleyici: 3.1.2"
B.mansouri

Hiç kapt "com.android.databinding: compiler: 3.1.2" kullanmıyorum, ancak sorunun yanlış paket yapısından ve dosyaların bir klasörden diğerine taşınmasından kaynaklandığını anladım
Sanjeev

6

Hançer de sebep olabilir. Hançer versiyonunun 2.17'den 2.16'ya değiştirilmesi bu sorunu şimdilik çözebilir.

Tartışma: https://github.com/google/dagger/issues/1245

Güncelleme

Dagger 2.18 çıktı ama ne yazık ki test ettikten sonra hala çalışmıyor (Bir şeyi kaçırdım mı?).

Güncelleme2

Dagger 2.19 da çalışmaz ve tartışma kilitlenir.

Ancak google issuetracke'de çözümler / geçici çözümler var. Test ettim ve çalıştılar. En son Dagger'ı kullanmak istiyorsanız kontrol edin.

Güncelleme3

Android Studio 3.3'te hançer sorunu düzeltildi.


Benim durumumdaki / bizim durumumdaki Dagger2'den kaynaklandığından da oldukça eminim. DataBindingComponent'in resmi dokümantasyonu hançerden bile bahsediyor: "Dagger 2 kullanılıyorsa, geliştirici bu arayüzü genişletmeli ve genişletilmiş arayüze bir Bileşen olarak açıklama eklemelidir." (kaynak: developer.android.com/reference/android/databinding/… ). Ama burada tam olarak ne yapacağımı ve hatayı düzeltip düzeltmeyeceğini anlamıyorum.
muetzenflo

@muetzenflo Bilgileriniz umut verici görünüyor. Bu bileşeni genişletmeye çalışacağım ve hatayı düzeltip düzeltemeyeceğine bakacağım.
Dewey Reed

@muetzenflo Çözümü denedim ama işe yaramadı. Sanırım sadece uygulama çalışırken etki ediyor, ancak sorun derleme zamanında oluyor.
Dewey Reed

2.19 çıktı ve sorun hala devam ediyor
Ernest Zamelczyk

@ErnestZamelczyk Haklısın. Ama yayıncıda bazı geçici çözümler buldum. Eğer ilgileniyorsanız güncellenmiş yanıtı kontrol edin.
Dewey Reed

5

Sonunda sorunumu çözdüm çünkü Android Ek Açıklamalarını kullanıyordum ve 1 Saat önce Grade Plugin 3.2.0'ı destekledikleri yeni bir Sürüm 4.5.1 yayınladılar .

Bir haftadır bu hatayı arıyordum ve şimdi mutluyum. Umarım bu da size yardımcı olur!


4

Sorunum, modülüm için veri bağlamayı etkinleştirmeye Loginçalışmamdı, ancak modül için değil App. Ekledikten sonra:

dataBinding {
    enabled = true
}

için Appmodül ve kaldırmasıyla Loginmodülü, işe yaradı.


Siz bayım, kariyerimi serbest meslek olarak kurtardınız. 8 saatten fazla deneme yanılma gibiydi. Söylemeliyim ki, App modülünde "buildFeatures.dataBinding = true" eksikti. Tüm özellik modülleri için de aynısını ayarlamak gerekiyordu. Hayatınız her zaman bal ve sütle dolu olsun.
nulldroid

2

classpath 'com.android.tools.build:gradle:3.2.0-beta05' Açık bir bağımlılıkla ve bağımlı olmadan denedimkapt "androidx.databinding:databinding-compiler:3.3.0-alpha06"

Ve hala aynı istisnayı alıyorum.

3.3.0-alpha06'yı da denedim ama hiçbir şey değişmedi.

GÜNCELLEME: 2 gün sonra sorunu çözdüm. Yaptığım şey, AndroidX'e Geçiş (ithalatlarda ve XML'lerde yanlış paketler vb.) Nedeniyle sorunlu tüm dosyaları manuel olarak düzeltmekti . Ek olarak, Glide'ı 4.7'den 4.8'e güncellemem gerekiyordu. Tüm kırmızı dosyaları düzelttiğimde sorun ortadan kalktı.


2

Bu benim en aptalca hatam! Aslında Databinding için özel bir değişken oluşturdum ve bu soruna neden oluyordu.

Sadece a kullanın lateinit var bindingve İşe Yaradı.

Bu birine yardımcı olabilir!


Bu benimle sorunu çözdü. Teşekkürler! Bunu bulmam 2 saatimi aldı ve yorumunuzu görecek kadar aşağı kaydırmadım. :(
Oliver Metz

Bunun size yardımcı olmasına sevindim! Veri bağlama hatalarının yorumlanması zordur !!
Kannan_SJD

2

Sadece kapt "com.android.databinding ..." bağımlılığını kaldırın. Android Studio 3.2 veya sonraki bir sürümünü kullanıyorsanız.


2

Benim durumumda, Dinamik Özellik Modülü kullanıyorsanız:

build.gradle (uygulama)

dataBinding {
    enabled true
}

Bunun hem kök hem de alt gradle dosyalarında etkinleştirilmesi gerekir (kapt eklentisi eklemeyi unutmayın).


THANNNNKKKKKK YOOOOOUUUUUUU FFS
ilansas

@zeromod Hangi kapt eklentisini ekleyebilir misiniz? Ayrıca, projemde kotlin yoksa ne olur?
Shubham Agrawal


1

Ekleyerek hatayı çözdüm

android.useAndroidX=true
android.enableJetifier=true

projemin gradle.properties dosyasında


Benim için çalışmadı. Yukarıdakiler ne yapar? Onu nerede buldun
Amir Uval

1
@auval olarak android.useAndroidX:ayarlandığında true, bu bayrak artık AndroidX'i kullanmaya başlamak istediğinizi gösterir. Bayrak yoksa, Android Studio, bayrak ayarlanmış gibi davranır false. android.enableJetifier:Olarak ayarlandığında true, bu bayrak, mevcut üçüncü taraf kitaplıklarını AndroidX için yazılmış gibi otomatik olarak dönüştürmek için araç desteğine (Android Gradle eklentisinden) sahip olmak istediğinizi belirtir. Bayrak yoksa, Android Studio, bayrak ayarlanmış gibi davranır false.
Edijae Crusar

Benim için işe yaramadı, Android studio 3.3 kullanıyorum, bu parametreler zaten mevcut
Sanjeev

Android X'e geçiş yaparsanız ve veri bağlama vb. Kullanırsanız bu kesinlikle gereklidir. Bir makinede geçiş yaptım ancak hata farklı bir makinede göründü çünkü gradle.properties kaynak kontrolünde değil
Daniel Wilson

1

Benim durumumda sorun değiştirilerek çözüldü :

androidExtensions.experimental = true

(yani tek hatlı olarak kademeli DSL)

-e

androidExtensions {
    experimental = true
}

benim dışında could not find the DataBindingComponent classayrıca açıklama error: incompatible types: NonExistentClass cannot be converted to Annotationile ilişkilendirildi kotlinx.android.parcel.Parcelize(@Parcelize)

Android Studio 3.3; gradle-4.10.1-all; tools.build:gradle 3.3.0


1

Veri bağlamada sınıfı içe aktarırken aynı sorunu yaşadım, bu yoktu. Ayrıca kullan

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

sorunu bulmak için tüm hata mesajlarını almak için. Projem için 50 ile sınırlıydı.


1

Benim için, düzen dosyamda bir hata vardı. Var olmayan bir işleve başvurdum.

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

Çözüm aşağıdadır:

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


0

Denenecek başka bir şey :) GithubBrowserSample'yi Android Studio 3.2'ye (RC3) almaya çalışıyordum. Ana build.gradle'da veri bağlama sürümlerini belirtmese de veri bağlama konusunda çok sayıda garip hata almaya devam ettim. Çözüm, bu iki satırı gradle.properties'ten kaldırmaktı :

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

0

Benim durumum:

Android Studio v3.2.1

com.android.tools.build:gradle:3.2.1

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

Düzenimden veri bağlamayı kaldırarak, uygulamayı yeniden derleyerek ve ardından veri bağlamayı tekrar ekleyerek bu sorunu çözdüğünü gördüm.

'Yi DataBindingUtil.setContentView(...)sadece olarak değiştirdim setContentView(...)ve etkinlik düzenimi minimuma indirdim:

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

Ardından veri bağlamayı parça parça geri ekleyin.


0

Benim durumumda bir ithalat hatası vardı , dosyalardan birinde vardı. Basitçe bu dosyayı açmak, ithalatların otomatik olarak gerçekleşmesini sağladı ve ardından proje inşa edildi.

Ne yazık ki, AS buna sıfır gösterge vermiş ve yığın izleme hatası vermemiş.

Gönderilen cevaplardan hiçbir şey yardımcı olmazsa - sadece projedeki tüm dosyalara göz atın ve yanlış import ifadesine sahip bir dosya arayın.


0

Jetifier'da bir hata. İşte bir sonraki güncellemeye kadar şimdilik bir geçici çözüm. Bunu proje notunuza koyun:

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

0

Dataroom kitaplığı kullanıyorsanız, DAO sınıflarınızda @da notasyonunu kontrol edin. Benim durumumda, RoomDatabase'dao arayüzüme @dao eklemeyi unuttum.


0

Oluşturulan arayüzler DataBindingComponentiçin genellikle yanıltıcı gibi hatalar oluşturun . Diğer yapı hatalarını arayıp önce bunları düzeltip sonra yeniden derlemeyi deneyin.


0

Aşağıdaki içe aktarmayı Gradle'dan kaldırmak zorunda kaldım,

androidx.room:room-compiler:2.1.0-alpha06

Garip sorunu olsa da, sadece gerekli olmayan ithalatı kaldırmaya çalışın, işe yaramalı.


0

Oda Veritabanı ile kullanıyorsanız, herhangi bir içe aktarma sorununuz varsa veya gerekli TypeConverter'ı kullanarak belirtmediyseniz, tüm Dao sınıflarınızı kontrol edin @TypeConverters, bu hata yanıltıcıdır ve proje düzeyinde gradle oluşturma araçları sürümünü en son sürümüne güncellerseniz düzeltilmelidir. Doğru kullandım classpath 'com.android.tools.build:gradle:3.4.0've hata aldım.


0

Benim durumum için Oda veritabanı Öğe sınıfında bir hata vardı ... Hata, Oda db öğe sınıfının üye değişkenleri için genel olması gereken özel değiştiriciyle ilgiliydi.

Stacktrace'i görmek için ./gradlew assembleDebug komut satırını kullanın ve keşfedin .

#Room #Database #Table sınıfı #DAO

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.