Właśnie stworzyłem nowy projekt na Android Studio 3.2 Canary 16 z włączonym Kotlin. Następnie włączyłem również powiązanie danych, ale pojawia się błąd informujący, że nie można znaleźć klasy DataBindingComponent.
Oto moja ocena projektu:
// 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
}
Mój plik oceny modułu:
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 mojej aktywności:
<?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>
A oto wynik kompilacji:
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
Co jest nie tak z moim projektem?
PS: Problem występuje również w Android Studio 3.1.2
android
kotlin
android-databinding
Juliano Nunes Silva Oliveira
źródło
źródło
android.databinding.enableV2=false android.enableExperimentalFeatureDatabinding = false
. dodanie tego dograde.properties
rozwiązania mojego problemuOdpowiedzi:
Biblioteki wiązań danych są refaktoryzowane w ramach refaktoryzacji Androidx.
Znalazłem łącze zależności procesora adnotacji wiążące dane z repozytorium Maven Google tutaj .
Stamtąd skonstruowałem rzeczywistą zależność gradle.
kapt "androidx.databinding:databinding-compiler:3.2.0-alpha16"
Aktualizacja Począwszy od wersji Android Studio 3.2.0-beta01 wiązanie danych nie wymaga już deklarowania zależności procesora adnotacji w pliku gradle, ponieważ wiązanie danych jest w stanie rozwiązać jego zależność.
źródło
Z następującą konfiguracją
A DataBinding po prostu włącz, mając to w mojej aplikacji build.gradle
apply plugin: 'kotlin-kapt'
i wtedy
dataBinding { enabled = true }
a także to w moich właściwościach gradle.wrapper
android.databinding.enableV2=true
Miałem te same błędy:
could not find the DataBindingComponent class.
Miałem ich ponad 100. Okazało się, że błędy te nie były istotne i że IDE nie wykazało prawdziwego błędu podstawowego. Dlatego zwiększyłem liczbę błędów, które może wyświetlić kompilator Kotlin, dodając to w pliku build.gradle:
dataBinding { enabled = true } kapt { javacOptions { // Increase the max count of errors from annotation processors. // Default is 100. option("-Xmaxerrs", 500) } }
Nagle, tuż pod tymi wszystkimi fałszywymi błędami, zobaczyłem prawdziwy błąd spowodowany nieudanym rozwiązaniem konfliktu scalania 😔
źródło
Po prostu usuń zależność kompilatora (kapt "com.android.databinding: kompilator: $ gradleVersion), która działała dla mnie. Najwyraźniej jest ona wyposażona we wtyczkę wiążącą z wersji 3.2.0.
źródło
Jeśli używasz już stabilnej wersji Androida Studio 3.2 , po prostu usuń zależność, jest już uwzględniona.
źródło
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) ...
Ten sam błąd w Android Studio 3.3.1, brak Kotlina, czysta Java, przy użyciu androidx
build.gradle zawiera
dataBinding { enabled true }
gradle.properties zawiera
android.useAndroidX=true android.enableJetifier=true android.databinding.enableV2=true
Walczyłem z tym problemem przez wiele godzin, a potem rozwiązałem go w następujący sposób:
Tymczasowo zadeklaruj pusty interfejs dla DataBindingComponent w projekcie (w
src/main/java/androidx.databinding/DataBindingComponent.java
)package androidx.databinding; public interface DataBindingComponent { }
Pozwól mu się skompilować, a błąd zniknie. Ale teraz zostanie ujawniony rzeczywisty błąd roota. Ten, który sprawiał wszystkie kłopoty, ale został w jakiś sposób połknięty. W moim przypadku pochodziło z AutoValue, wskazując, że nieprawidłowo go używałem
error: Parameter type java.lang.Boolean of setter method should be boolean to match getter
naprawienie tego, a następnie usunięcie atrapy interfejsu sprawia, że kompilator znów jest szczęśliwy.
źródło
Co jest warte, miałem podobny problem i był to wynik złego zapytania dotyczącego pokoju, które było związane z wiązaniem danych.
źródło
ArrayList
jako powrotu do zapytania, w którym musi to być plikList
.W moim przypadku był to zły sztylet. Umieszczam zakres niestandardowy w module zamiast umieszczać go w metodzie dostarczania.
¯\_(ツ)_/¯
źródło
Miałem ten sam problem.
Zmiana
Kapt
naannotationProcessor
tylko dla DataBinding rozwiązała problem.źródło
napotykam ten problem podczas aktualizacji do Android Studio 3.2, zmieniam wtyczkę Gradle z 3.2.0 na 3.1.4 i działa dobrze -> myślę, że to problem z gradle, na pewno wkrótce zostanie zaktualizowany
źródło
Przyczyną może być również sztylet.
Zmiana wersji sztyletu z 2.17 na 2.16 może na razie rozwiązać ten problem.Dyskusja: https://github.com/google/dagger/issues/1245
AktualizacjaDagger 2.18 wyszedł, ale niestety po przetestowaniu nadal nie działa (czy coś przeoczyłem?).Aktualizacja2Dagger 2.19 również nie zadziała, a dyskusja jest zablokowana.Ale w Google Issuetracke są rozwiązania / obejścia. Testowałem i zadziałały. Zaznacz, jeśli chcesz skorzystać z najnowszego sztyletu.Aktualizacja3
Problem sztyletu został naprawiony w Android Studio 3.3.
źródło
w końcu rozwiązałem swój problem, ponieważ korzystałem z adnotacji Androida i wydali nową wersję 4.5.1 godzinę temu , w której obsługują one Grade Plugin 3.2.0.
Szukałem tego błędu przez tydzień i teraz jestem szczęśliwy. Mam nadzieję, że to też pomoże!
źródło
Mój problem polegał na tym, że próbowałem włączyć powiązanie danych dla mojego
Login
modułu, ale nie dlaApp
modułu. Po dodaniu:dataBinding { enabled = true }
do
App
modułu i wyjąłem go zLogin
modułu, zadziałało.źródło
Próbowałem
classpath 'com.android.tools.build:gradle:3.2.0-beta05'
zi bez wyraźnej zależnościkapt "androidx.databinding:databinding-compiler:3.3.0-alpha06"
I wciąż otrzymuję ten sam wyjątek.
Próbowałem też 3.3.0-alpha06 ale nic się nie zmieniło.
AKTUALIZACJA: Po 2 dniach rozwiązałem problem. To, co zrobiłem, to ręczne naprawienie wszystkich plików, które miały problemy z powodu migracji do AndroidX (złe pakiety w imporcie i XML itp.). Dodatkowo musiałem zaktualizować Glide z 4.7 do 4.8. Kiedy naprawiłem wszystkie czerwone pliki, problem zniknął.
źródło
To mój najgłupszy błąd! Właściwie utworzyłem prywatną zmienną dla Databinding i to było przyczyną tego problemu.
Po prostu użyj
lateinit var binding
i zadziałało.To mogłoby komuś pomóc!
źródło
Po prostu usuń zależność kapt „com.android.databinding ...”. Jeśli używasz Android Studio 3.2 lub nowszej wersji.
źródło
W moim przypadku, jeśli używasz Dynamic Feature Module:
dataBinding { enabled true }
Musi to być włączone zarówno dla plików root, jak i podrzędnych (nie zapomnij dodać wtyczki kapt).
źródło
Naprawiłem to, aktualizując Android Studio do Canary 16 ORAZ to w gradle.wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip
źródło
Błąd rozwiązałem dodając
android.useAndroidX=true android.enableJetifier=true
w pliku gradle.properties mojego projektu
źródło
android.useAndroidX:
Gdy jest ustawiona natrue
, ta flaga wskazuje, że chcesz zacząć używać AndroidX od teraz. Jeśli flaga jest nieobecna, Android Studio zachowuje się tak, jakby flaga była ustawiona nafalse
.android.enableJetifier:
Po ustawieniutrue
ta flaga wskazuje, że chcesz mieć obsługę narzędzi (z wtyczki Android Gradle), aby automatycznie konwertować istniejące biblioteki innych firm, tak jakby zostały napisane dla AndroidX. Jeśli flaga jest nieobecna, Android Studio zachowuje się tak, jakby flaga była ustawiona nafalse
.W moim przypadku problem został rozwiązany poprzez zmianę:
androidExtensions.experimental = true
(tj. gradle DSL jako jednowierszowy)
do
androidExtensions { experimental = true }
oprócz
could not find the DataBindingComponent class
miałem teżerror: incompatible types: NonExistentClass cannot be converted to Annotation
skojarzone zkotlinx.android.parcel.Parcelize
adnotacją (@Parcelize)Android Studio 3.3; gradle-4.10.1-all; tools.build:gradle 3.3.0
źródło
Miałem ten sam problem, gdy importowałem klasę w wiązaniu danych, który nie istniał. Użyj również
allprojects { gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs << "-Xmaxerrs" << "1000" } } }
za odbieranie wszystkich komunikatów o błędach w celu znalezienia problemu. Dla mojego projektu było to ograniczone do 50.
źródło
U mnie wystąpił błąd w moim pliku układu. Odwołałem się do funkcji, która nie istniała.
android:text="@{() -> sleepTrackerViewModel.nightStrings}"
Poniżej znajduje się rozwiązanie:
android:text="@{sleepTrackerViewModel.nightStrings}"
źródło
Coś innego do wypróbowania :) Próbowałem pobrać GithubBrowserSample do Android Studio 3.2 (RC3). Ciągle otrzymywałem wiele dziwnych błędów podczas wiązania danych, mimo że nie określa ono wersji powiązań danych w głównym pliku build.gradle. Rozwiązaniem było usunięcie tych dwóch linii z gradle.properties:
org.gradle.jvmargs=-Xmx4536m android.databinding.enableV2=true
źródło
Moja sytuacja:
Zauważyłem, że usunięcie wiązania danych z mojego układu, ponowna kompilacja aplikacji, a następnie ponowne dodanie do niej powiązania danych rozwiązało ten problem.
Zmieniłem na
DataBindingUtil.setContentView(...)
sprawiedliwysetContentView(...)
i zredukowałem układ mojej aktywności do absolutnego minimum:<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>
Następnie dodaj oprawę danych kawałek po kawałku.
źródło
W moim przypadku wystąpił błąd importu w jednym z plików. Po prostu otwarcie tego pliku powodowało automatyczne importowanie, a następnie budowanie projektu.
Szkoda, że AS dał na to zero wskazań, podobnie jak błąd stacktrace.
Jeśli nic z wysłanej odpowiedzi nie pomaga - po prostu przejrzyj wszystkie pliki w projekcie i poszukaj pliku, który ma nieprawidłową instrukcję importu.
źródło
To błąd w jetifier. Oto obejście do następnej aktualizacji. Umieść to w ocenie swojego projektu:
buildscript { dependencies { classpath 'com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta02' } }
źródło
Jeśli korzystasz z biblioteki dataroom, sprawdź adnotację @√ w swoich klasach DAO. W moim przypadku zapomniałem dodać atrybutu @√ do interfejsu RoomDatabase'√.
źródło
Błędy kompilacji dla wygenerowanych interfejsów, takie jak,
DataBindingComponent
zwykle wprowadzają w błąd. Spróbuj poszukać innych błędów kompilacji i najpierw je napraw, a następnie skompiluj ponownie.źródło
Musiałem usunąć następujący import z Gradle,
androidx.room:room-compiler:2.1.0-alpha06
Mimo że jest to dziwny problem, po prostu spróbuj usunąć niepotrzebny import, powinien działać.
źródło
Jeśli używasz z bazą danych pomieszczeń, sprawdź wszystkie swoje klasy Dao, jeśli masz problem z importem lub nie określono wymaganego TypeConvertera
@TypeConverters
, ten błąd jest mylący i powinien zostać naprawiony, jeśli zaktualizujesz wersję narzędzi do budowania gradle na poziomie projektu do najnowszej. Użyłemclasspath 'com.android.tools.build:gradle:3.4.0'
i poprawnie otrzymałem błąd.źródło
W moim przypadku wystąpił błąd w klasie pozycji bazy danych Room ... Błąd dotyczył prywatnego modyfikatora, który powinien być publiczny dla zmiennych składowych klasy pozycji bazy danych Room.
Użyj i zbadaj wiersz poleceń ./gradlew assembleDebug, aby zobaczyć stacktrace.
#Room #Database #Table class #DAO
źródło