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
android
kotlin
android-databinding
Juliano Nunes Silva Oliveira
sumber
sumber
android.databinding.enableV2=false android.enableExperimentalFeatureDatabinding = false
. menambahkan ini untukgrade.properties
memecahkan masalah sayaJawaban:
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.
sumber
Dengan pengaturan berikut
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 😔
sumber
Hapus saja dependensi compiler (kapt "com.android.databinding: compiler: $ gradleVersion), yang berfungsi untuk saya, ternyata dilengkapi dengan plugin binding dari 3.2.0.
sumber
Jika Anda sudah menggunakan versi stabil Android Studio 3.2 , Hapus saja ketergantungannya, itu sudah termasuk.
sumber
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) ...
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.
sumber
Untuk apa nilainya, saya memiliki masalah serupa dan itu adalah hasil dari kueri Room yang buruk yang terkait dengan pengikatan data.
sumber
ArrayList
sebagai kembali ke kueri di mana itu harus menjadiList
.Dalam kasus saya, itu adalah anotasi belati yang buruk. Saya menempatkan cakupan khusus pada Modul alih-alih meletakkannya pada metode penyediaan.
¯\_(ツ)_/¯
sumber
Saya memiliki masalah yang sama.
Mengubah
Kapt
keannotationProcessor
hanya untuk DataBinding memperbaiki masalah bagi saya.sumber
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
sumber
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
MemperbaruiDagger 2.18 sudah keluar tetapi sayangnya masih tidak berfungsi setelah saya menguji (Apakah saya melewatkan sesuatu?).Pembaruan2Belati 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.
sumber
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!
sumber
Masalah saya adalah saya mencoba mengaktifkan pengikatan data untuk
Login
modul saya tetapi bukanApp
modulnya. Setelah menambahkan:dataBinding { enabled = true }
ke
App
modul dan menghapusnya dariLogin
modul, itu berhasil.sumber
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.
sumber
Ini adalah kesalahan terbodohku! Saya sebenarnya telah membuat variabel pribadi untuk Penyatuan Data dan itu menyebabkan masalah ini.
Cukup gunakan a
lateinit var binding
dan Berhasil.Ini bisa membantu seseorang!
sumber
Hapus saja ketergantungan kapt "com.android.databinding ...". Jika Anda menggunakan Android Studio 3.2 atau versi yang lebih baru.
sumber
Dalam kasus saya, Jika Anda menggunakan Modul Fitur Dinamis:
dataBinding { enabled true }
Ini perlu diaktifkan pada file root dan child gradle (jangan lupa menambahkan plugin kapt).
sumber
Saya memperbaikinya memperbarui Android Studio ke Canary 16 DAN ini di gradle.wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip
sumber
Saya memecahkan kesalahan dengan menambahkan
android.useAndroidX=true android.enableJetifier=true
di file gradle.properties proyek saya
sumber
android.useAndroidX:
Jika disetel ketrue
, tanda ini menunjukkan bahwa Anda ingin mulai menggunakan AndroidX mulai sekarang. Jika flag tidak ada, Android Studio berperilaku seolah-olah flag tersebut disetel kefalse
.android.enableJetifier:
Jika disetel ketrue
, 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 kefalse
.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 class
saya juga sempaterror: incompatible types: NonExistentClass cannot be converted to Annotation
berhubungan dengankotlinx.android.parcel.Parcelize
anotasi (@Parcelize)Android Studio 3.3; gradle-4.10.1-semua; tools.build:gradle 3.3.0
sumber
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.
sumber
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}"
sumber
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
sumber
Situasi saya:
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 adilsetContentView(...)
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.
sumber
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.
sumber
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' } }
sumber
Jika Anda menggunakan pustaka dataroom, periksa anotasi @Dao di kelas DAO Anda. Dalam kasus saya, saya lupa menambahkan @Dao ke antarmuka RoomDatabase'Dao.
sumber
Kesalahan pembuatan untuk antarmuka yang dihasilkan seperti
DataBindingComponent
biasanya menyesatkan. Coba cari error build lainnya dan perbaiki yang pertama, lalu kompilasi ulang.sumber
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.
sumber
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 menggunakanclasspath 'com.android.tools.build:gradle:3.4.0'
dan mendapat kesalahan dengan benar.sumber
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
sumber