Tidak dapat menemukan simbol DataBindingComponent di proyek Android Studio 3.2 Canary 16 Kotlin

91

Saya baru saja membuat proyek baru di Android Studio 3.2 Canary 16 dengan Kotlin diaktifkan. Lalu saya juga mengaktifkan data binding, tetapi saya mendapatkan error yang mengatakan bahwa class DataBindingComponent tidak dapat ditemukan.

Inilah proyek saya gradle:

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

File gradle modul saya:

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 aktivitas saya:

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

Dan inilah keluaran buildnya:

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

Apa yang salah dengan proyek saya?

PS: Masalahnya juga terjadi di Android Studio 3.1.2

Juliano Nunes Silva Oliveira
sumber
apakah kamu mendapatkan solusi?
Brijesh Joshi
@BrijeshJoshi lihat jawaban saya di bawah
Edijae Crusar
Bagi saya kesalahan sebenarnya sebenarnya dicetak setelah ini. Setelah memperbaiki kesalahan itu, kesalahan ini juga akan hilang.
Mygod
1
Dalam kasus saya tidak ada kesalahan lain yang ditampilkan dalam log, tetapi setelah meninjau diff saya, saya menemukan anotasi yang tidak diimpor di beberapa file kt. Setelah memperbaiki impor, build berfungsi. Tampaknya ada beberapa masalah dalam prosesor kapt.
androidguy
1
android.databinding.enableV2=false android.enableExperimentalFeatureDatabinding = false. menambahkan ini untuk grade.propertiesmemecahkan masalah saya
MMK

Jawaban:

58

Library penyatuan data sedang difaktorkan ulang sebagai bagian dari pemfaktoran ulang androidx.

Saya menemukan tautan ketergantungan pemroses anotasi penyatuan data dari repositori maven google di sini .

Saya telah membangun ketergantungan gradle sebenarnya dari sana.

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

Update Sejak Android studio 3.2.0-beta01, penyatuan data tidak lagi membutuhkan ketergantungan prosesor anotasi untuk dideklarasikan dalam file gradle, karena penyatuan data mampu menyelesaikan ketergantungannya.

Samuel Robert
sumber
4
Saya telah menghapus ketergantungan ini dan mencoba semua solusi di bawah ini tetapi sepertinya tidak ada yang berhasil
Sanjeev
Versi studio apa yang Anda gunakan?
Samuel Robert
Android studio 3.3 Canary 11 dengan gradle 4.10
Sanjeev
Kesalahan: tidak dapat menemukan simbol DataBindingComponent, saya memiliki pengikatan data yang memungkinkan untuk berlangsung di gradle, saya tidak tahu apa masalahnya
Sanjeev
Mengaktifkan DataBinding di gradle?
Samuel Robert
62

Dengan pengaturan berikut

Android Studio 3.2.1 Build # AI-181.5540.7.32.5056338, dibuat pada 8 Oktober 2018 JRE: 1.8.0_152-release-1136-b06 x86_64 JVM: OpenJDK 64-Bit Server VM oleh JetBrains sro macOS 10.13.3

Dan DataBinding cukup aktifkan dengan memiliki ini di app build.gradle saya

apply plugin: 'kotlin-kapt'

lalu

    dataBinding {
        enabled = true
    }

dan juga ini di properti gradle.wrapper saya

android.databinding.enableV2=true

Saya mengalami kesalahan yang sama:

could not find the DataBindingComponent class.

Saya memiliki lebih dari 100 dari mereka. Ternyata kesalahan tersebut tidak penting dan kesalahan mendasar sebenarnya tidak ditampilkan oleh IDE. Oleh karena itu, saya meningkatkan jumlah error yang dapat ditampilkan oleh compiler Kotlin dengan menambahkan ini di build.gradle:

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

Tiba-tiba, tepat di bawah semua kesalahan palsu itu, saya melihat yang asli disebabkan oleh resolusi konflik gabungan yang gagal 😔

Hamady C.
sumber
Hai, bagaimana cara melakukan ini dalam proyek java?
Tosin John
sekelompok kesalahan palsu awalnya untuk Dilakukan dengan DataBindingComponent. lalu ketika saya meningkatkan ukuran kesalahan. Saya melihat itu adalah masalah dengan saya menggunakan lingkup yang salah dengan belati.
filthy_wizard
Ini adalah satu-satunya solusi yang berhasil..Terima kasih banyak..itu membantu.
Deepak Ganachari
Tidak dapat menemukan simbol DataBindingComponent saat membangun dari baris perintah menggunakan ./gradlew assembleDebug
Chetan Chaudhari
3
Saya menghabiskan hari-hari dalam hidup saya untuk mencari kesalahan tanpa pesan ...! Terima kasih sobat, Anda adalah pria terbaik tahun ini :-D
m.zander
31

Hapus saja dependensi compiler (kapt "com.android.databinding: compiler: $ gradleVersion), yang berfungsi untuk saya, ternyata dilengkapi dengan plugin binding dari 3.2.0.

Deividas Strioga
sumber
21

Jika Anda sudah menggunakan versi stabil Android Studio 3.2 , Hapus saja ketergantungannya, itu sudah termasuk.

Narek Hayrapetyan
sumber
3
Menyelesaikannya untuk saya, terima kasih. Mereka seharusnya menambahkan tooltip / perbaikan otomatis di IDE.
SpaceMonkey
3
Gandakan untuk ini. Kesalahan saya sedikit berbeda tetapi ini adalah akar penyebabnya. Jika seseorang mencari di Google untuk itu: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

Kesalahan yang sama di sini di Android Studio 3.3.1, tidak ada Kotlin, Java murni, menggunakan androidx

build.gradle berisi

    dataBinding {
        enabled true
    }

gradle.properties berisi

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

Saya telah melawan masalah ini selama berjam-jam dan kemudian menyelesaikannya sebagai berikut:

Deklarasikan untuk sementara antarmuka kosong untuk DataBindingComponent di Project Anda (dalam src/main/java/androidx.databinding/DataBindingComponent.java)

package androidx.databinding;

public interface DataBindingComponent {
}

Biarkan kompilasi dan kesalahan akan hilang. Tapi sekarang kesalahan root yang sebenarnya akan terungkap. Yang sebenarnya menyebabkan semua masalah tetapi entah bagaimana tertelan. Dalam kasus saya, itu berasal dari AutoValue yang menunjukkan bahwa saya menggunakannya secara tidak benar

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

memperbaikinya dan kemudian menghapus antarmuka dummy membuat kompiler senang lagi.

Ginie
sumber
Terima kasih banyak atas jawaban ini. Saya telah berjuang keras karena masalah ini.
Farooq Zaman
Terima kasih banyak untuk ini
kkl260
1
OMG, terima kasih, terima kasih, terima kasih. Ini berhasil !! Terima kasih! Saya bermigrasi ke androidx dan pada tahap terakhir, setelah selesai, saya mengalami 70 kesalahan seperti OP. Trik Anda mengungkapkan 13 kesalahan mendasar. Apakah saya mengucapkan terima kasih? : D
Alberto Garrido
Ini adalah Android Studio 3.6.1 sekarang. Masih perlu mengikuti trik ini untuk melihat kesalahan yang sebenarnya. :(
krishh
Ini bagus! Terima kasih!
Takeshi Kaga
15

Untuk apa nilainya, saya memiliki masalah serupa dan itu adalah hasil dari kueri Room yang buruk yang terkait dengan pengikatan data.

Bink
sumber
1
bekerja untuk saya, saya menonaktifkan konverter jenis untuk diperiksa dan berhasil
Murat
2
Terima kasih! Saya juga mengalami masalah terkait Room. Saya menggunakan ArrayListsebagai kembali ke kueri di mana itu harus menjadi List.
Van
1
Ini buruk. Masalah yang sama sekali tidak terkait di ruangan menyebabkan masalah ini.
Carson Holzheimer
Ini TIDAK eksklusif untuk Kamar. Pemroses anotasi lainnya yang Anda gunakan dapat memunculkan pengecualian selama kompilasi, gagal sebelum prosesor DataBinding ikut bermain.
Vitor Hugo Schwaab
dan kesalahan itu tetap terkubur di antara kesalahan yang dinyatakan sebagai pertanyaan.
Reejesh PK
14

Dalam kasus saya, itu adalah anotasi belati yang buruk. Saya menempatkan cakupan khusus pada Modul alih-alih meletakkannya pada metode penyediaan.

¯\_(ツ)_/¯

mbonnin.dll
sumber
1
Saya memiliki pernyataan impor yang hilang untuk nilai anotasi dan parameter metode. Dengan Dagger 2.19 saya mendapatkan omong kosong tentang penyatuan data di atas. Untungnya Dagger 2.21 mengarahkan saya ke arah yang benar.
Eugen Pechanec
8

Saya memiliki masalah yang sama.

Mengubah Kaptke annotationProcessorhanya untuk DataBinding memperbaiki masalah bagi saya.

Saeed.re
sumber
7

saya menghadapi masalah ini saat memperbarui ke android studio 3.2, saya mengubah plugin gradle dari 3.2.0 menjadi 3.1.4 dan berfungsi dengan baik -> saya pikir ini masalah gradle, itu akan segera diperbarui

B. manori
sumber
coba ubah gradle dan hapus kapt "com.android.databinding: compiler: 3.1.2"
B.mansouri
Saya sama sekali tidak menggunakan kapt "com.android.databinding: compiler: 3.1.2", tetapi saya menemukan masalahnya, itu karena struktur paket yang salah dan memindahkan file dari satu folder ke folder lain
Sanjeev
6

Belati mungkin juga menjadi penyebabnya. Mengubah versi dagger dari 2.17 kembali ke 2.16 dapat memperbaiki masalah ini untuk saat ini.

Diskusi: https://github.com/google/dagger/issues/1245

Memperbarui

Dagger 2.18 sudah keluar tetapi sayangnya masih tidak berfungsi setelah saya menguji (Apakah saya melewatkan sesuatu?).

Pembaruan2

Belati 2.19 juga tidak akan berfungsi dan diskusi terkunci.

Tapi di Google Issuetracke , ada solusi / solusi. Saya menguji dan mereka bekerja. Periksa apakah Anda ingin menggunakan Belati terbaru.

Pembaruan3

Masalah belati telah diperbaiki di Android Studio 3.3.

Dewey Reed
sumber
Saya juga cukup yakin bahwa ini disebabkan oleh Dagger2 dalam kasus saya / kami. Dokumentasi resmi DataBindingComponent bahkan menyebutkan belati: "Jika menggunakan Dagger 2, pengembang harus memperluas antarmuka ini dan memberi anotasi antarmuka yang diperluas sebagai Komponen." (sumber: developer.android.com/reference/android/databinding/… ). Tetapi saya tidak mengerti persis apa yang harus dilakukan di sini dan apakah itu akan memperbaiki kesalahan.
muetzenflo
@muetzenlo Info Anda sepertinya menjanjikan. Saya akan mencoba memperluas komponen itu dan melihat apakah itu dapat memperbaiki kesalahan.
Dewey Reed
@muetzenflo Saya sudah mencoba solusinya tetapi tidak berhasil. Saya kira itu hanya membutuhkan efek ketika aplikasi berjalan tetapi masalah terjadi pada waktu kompilasi.
Dewey Reed
2.19 sudah keluar dan masalahnya masih ada
Ernest Zamelczyk
@ErnestZamelczyk Anda benar. Tapi saya menemukan beberapa solusi di penerbit itu. Periksa jawaban yang diperbarui jika Anda tertarik.
Dewey Reed
5

saya akhirnya memperbaiki masalah saya karena saya menggunakan Anotasi Android dan mereka merilis Versi 4.5.1 yang baru 1 Jam yang lalu, di mana mereka mendukung Grade Plugin 3.2.0.

Saya mencari bug ini selama seminggu dan sekarang saya senang. Semoga ini bisa membantu Anda juga!

Sandra
sumber
4

Masalah saya adalah saya mencoba mengaktifkan pengikatan data untuk Loginmodul saya tetapi bukan Appmodulnya. Setelah menambahkan:

dataBinding {
    enabled = true
}

ke Appmodul dan menghapusnya dari Loginmodul, itu berhasil.

Aleksander Aleksic
sumber
Anda Pak, selamatkan karier saya dalam wirausaha. Rasanya seperti coba-coba selama> 8 jam. Saya harus mengatakan meskipun, saya baru saja kehilangan "buildFeatures.dataBinding = true" dalam modul App. Harus disetel sama untuk semua modul fitur juga. Semoga hidupmu selalu diisi dengan madu dan susu.
nulldroid
2

Saya telah mencoba classpath 'com.android.tools.build:gradle:3.2.0-beta05' dengan dan tanpa ketergantungan eksplisitkapt "androidx.databinding:databinding-compiler:3.3.0-alpha06"

Dan masih mendapatkan pengecualian yang sama.

Saya juga mencoba 3.3.0-alpha06 tetapi tidak ada yang berubah.

UPDATE: Setelah 2 hari, saya menyelesaikan masalah tersebut. Yang saya lakukan adalah, secara manual memperbaiki semua file yang bermasalah, karena Migrasi ke AndroidX (paket salah dalam impor dan XML, dll.). Selain itu, saya perlu memperbarui Glide dari 4.7 menjadi 4.8. Ketika saya memperbaiki semua file merah, masalahnya hilang.

Stanislaw Baranski
sumber
2

Ini adalah kesalahan terbodohku! Saya sebenarnya telah membuat variabel pribadi untuk Penyatuan Data dan itu menyebabkan masalah ini.

Cukup gunakan a lateinit var bindingdan Berhasil.

Ini bisa membantu seseorang!

Kannan_SJD
sumber
Ini memecahkan masalah saya. Terima kasih! Butuh waktu 2 jam untuk menemukan ini dan tidak menggulir ke bawah cukup jauh untuk melihat komentar Anda. :(
Oliver Metz
Senang ini membantu Anda! Kesalahan penyatuan data sulit untuk ditafsirkan !!
Kannan_SJD
2

Hapus saja ketergantungan kapt "com.android.databinding ...". Jika Anda menggunakan Android Studio 3.2 atau versi yang lebih baru.

Naimish Vinchhi
sumber
2

Dalam kasus saya, Jika Anda menggunakan Modul Fitur Dinamis:

build.gradle (aplikasi)

dataBinding {
    enabled true
}

Ini perlu diaktifkan pada file root dan child gradle (jangan lupa menambahkan plugin kapt).

zeromod
sumber
THANNNNKKKKKK YOOOOOUUUUUUUU FFS
ilansas
@zeromod Bisakah Anda menambahkan plugin kapt? Juga, bagaimana jika saya tidak memiliki kotlin dalam proyek saya?
Shubham Agrawal
1

Saya memperbaikinya memperbarui Android Studio ke Canary 16 DAN ini di gradle.wrapper.propertiesdistributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip

Eduardo Dornel
sumber
2
Saya sudah menggunakan Canary 16 dan Gradle 4.7, tetapi tidak berhasil.
Juliano Nunes Silva Oliveira
Saya menggunakan Android studio 3.3 Canary 11 dan Gradle 4.10, dan saya mendapatkan kesalahan, jadi solusi ini tidak membantu saya
Sanjeev
1

Saya memecahkan kesalahan dengan menambahkan

android.useAndroidX=true
android.enableJetifier=true

di file gradle.properties proyek saya

Edijae Crusar
sumber
Tidak berhasil untuk saya. Apa yang dilakukan di atas? Di mana Anda menemukannya?
Amir Uval
1
@auval android.useAndroidX:Jika disetel ke true, tanda ini menunjukkan bahwa Anda ingin mulai menggunakan AndroidX mulai sekarang. Jika flag tidak ada, Android Studio berperilaku seolah-olah flag tersebut disetel ke false. android.enableJetifier:Jika disetel ke true, tanda ini menunjukkan bahwa Anda ingin memiliki dukungan alat (dari Android Gradle plugin) untuk secara otomatis mengonversi pustaka pihak ketiga yang ada seolah-olah dibuat untuk AndroidX. Jika flag tidak ada, Android Studio berperilaku seolah-olah flag tersebut disetel ke false.
Edijae Crusar
Tidak berfungsi untuk saya, saya menggunakan Android studio 3.3, parameter ini sudah ada
Sanjeev
Ini pasti diperlukan jika Anda bermigrasi ke Android X dan menggunakan penyatuan data dll. Saya bermigrasi di satu mesin tetapi kesalahan muncul di mesin lain karena gradle.properties tidak ada dalam kendali sumber
Daniel Wilson
1

Dalam kasus saya, masalah tersebut diselesaikan dengan mengubah:

androidExtensions.experimental = true

(yaitu, gradle DSL sebagai satu baris)

untuk

androidExtensions {
    experimental = true
}

selain dari could not find the DataBindingComponent classsaya juga sempat error: incompatible types: NonExistentClass cannot be converted to Annotationberhubungan dengan kotlinx.android.parcel.Parcelizeanotasi (@Parcelize)

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

kosiara - Bartosz Kosarzycki
sumber
1

Memiliki masalah yang sama ketika saya mengimpor kelas di databinding, itu tidak ada. Juga gunakan

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

untuk menerima semua pesan kesalahan untuk menemukan masalah. Untuk proyek saya dibatasi hingga 50.

Jan Moravec
sumber
1

Bagi saya, ada kesalahan dalam file tata letak saya. Saya mereferensikan fungsi yang tidak ada.

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

Di bawah ini solusinya:

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

Zainab
sumber
0

Sesuatu yang lain untuk dicoba :) Saya mencoba memasukkan GithubBrowserSample ke Android Studio 3.2 (RC3). Saya terus mendapatkan banyak kesalahan aneh pada penyatuan data meskipun itu tidak menentukan versi pengikatan data di build.gradle utama. Solusinya adalah menghapus dua garis ini dari properti gradle.properties:

org.gradle.jvmargs=-Xmx4536m
android.databinding.enableV2=true
Daniel Wilson
sumber
0

Situasi saya:

Android Studio v3.2.1

com.android.tools.build:gradle:3.2.1

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

Saya menemukan bahwa dengan menghapus penyatuan data dari tata letak saya, mengkompilasi ulang aplikasi dan kemudian menambahkan kembali penyatuan data di dalamnya memperbaiki masalah ini.

Saya mengubah DataBindingUtil.setContentView(...)menjadi adil setContentView(...)dan mengurangi tata letak aktivitas saya seminimal mungkin:

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

Kemudian tambahkan penyatuan data kembali sepotong demi sepotong.

Pemberi tugas
sumber
0

Dalam kasus saya, ada kesalahan impor di salah satu file. Cukup membuka file itu membuat impor terjadi secara otomatis dan setelah itu proyek dibuat.

Sayang sekali, AS memberikan indikasi nol untuk ini, begitu pula kesalahan stacktrace.

Jika tidak ada dari jawaban yang diposting yang membantu - cukup telusuri semua file dalam proyek dan cari file yang pernyataan impornya salah.

azizbekian
sumber
0

Ini bug di jetifier. Berikut solusi untuk saat ini hingga pembaruan berikutnya. Taruh ini di project gradle Anda:

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

Jika Anda menggunakan pustaka dataroom, periksa anotasi @Dao di kelas DAO Anda. Dalam kasus saya, saya lupa menambahkan @Dao ke antarmuka RoomDatabase'Dao.

bdpqchen.dll
sumber
0

Kesalahan pembuatan untuk antarmuka yang dihasilkan seperti DataBindingComponentbiasanya menyesatkan. Coba cari error build lainnya dan perbaiki yang pertama, lalu kompilasi ulang.

owjsub.dll
sumber
0

Saya harus menghapus impor berikut dari Gradle,

androidx.room:room-compiler:2.1.0-alpha06

Meskipun masalahnya aneh, Coba saja hapus ke impor yang tidak diperlukan, itu harus berfungsi.

Zumry Mohamed
sumber
0

Jika menggunakan dengan Room Database, periksa semua kelas Dao Anda jika Anda memiliki masalah impor atau tidak ditentukan penggunaan TypeConverter yang diperlukan @TypeConverters, kesalahan ini menyesatkan, dan harus diperbaiki jika Anda memperbarui versi alat build gradle tingkat proyek ke yang terbaru. Saya menggunakan classpath 'com.android.tools.build:gradle:3.4.0'dan mendapat kesalahan dengan benar.

abitcode
sumber
0

Untuk kasus saya, ada beberapa kesalahan dalam kelas Item database Kamar ... Kesalahan adalah tentang pengubah pribadi yang seharusnya bersifat publik untuk variabel anggota kelas item Ruang db.

Gunakan dan jelajahi baris perintah ./gradlew assembleDebug untuk melihat stacktrace.

#Room #Database #Kelas tabel #DAO

Himanshu Mori
sumber