web-dev-qa-db-fra.com

RoomDatabase_Impl n'existe pas

Lorsque j'essaie d'implémenter une base de données de pièces, j'obtiens le message d'erreur suivant:

Java.lang.RuntimeException: cannot find implementation for com.udacity.gradle.builditbigger.Database.HilarityUserDatabase. HilarityUserDatabase_Impl does not exist
                                                 at Android.Arch.persistence.room.Room.getGeneratedImplementation(Room.Java:92)

J'ai essayé d'ajouter les dépendances kotlin appropriées à mon fichier gradle (illustré ci-dessous), mais toutes les classes Databinding qui seraient normalement générées avec n'importe quel problème généraient maintenant des erreurs dans ma console Gradle. Est-il possible pour moi d'utiliser la bibliothèque DataBinding et la bibliothèque Room Pesistence?

apply plugin: 'kotlin-Android'
apply plugin: 'kotlin-Android-extensions'
apply plugin: 'kotlin-kapt'
...
dependencies{
    kapt "Android.Arch.persistence.room:compiler:1.0.0"
}
4

Cela m'est déjà arrivé auparavant, assurez-vous que vous avez tous les 3 dépendances dans build.gradle

implementation 'Android.Arch.persistence.room:runtime:1.0.0'
annotationProcessor  'Android.Arch.persistence.room:compiler:1.0.0'
kapt 'Android.Arch.persistence.room:compiler:1.0.0'

En outre, un "Project Clean" après la synchronisation progressive aidera également.

8
MhzDev

Assurez-vous que kotlin-kapt est inclus dans le fichier Gradle au niveau de l'application.

apply plugin: 'kotlin-Android'
apply plugin: 'kotlin-Android-extensions'
apply plugin: 'kotlin-kapt'

et assurez-vous d’utiliser kapt au lieu de annotationProcessor . Cela a résolu mon problème.

Et vérifiez également les fichiers Room Model, DAO et Database des annotations @Entity, @Dao et @Database.

4
Arkar Min Tun

Pour utiliser Room, LiveData et ViewModel, vous avez besoin de ces bibliothèques:

•implementation "Android.Arch.persistence.room:runtime:1.0.0" •implementation "Android.Arch.lifecycle:extensions:1.1.0" •kapt "Android.Arch.persistence.room:compiler:1.0.0" •kapt "Android.Arch.lifecycle:compiler:1.1.0"

LiveData et ViewModel vous permettent d'utiliser la technique DataBinding.

Pour plus d'informations, consultez la page officielle: https://developer.Android.com/topic/libraries/architecture/adding-components.html

0
Erick