Le studio Android a donné l'erreur:
apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' //apply plugin: 'androidx.navigation.safeargs' kotlin { experimental { coroutines 'enable' } } android { compileSdkVersion 29 defaultConfig { applicationId "com.bestcred.coursetthree" minSdkVersion 21 targetSdkVersion 29 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" //vectorDrawables.useSupportLibrary = true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } // Enables data binding. buildFeatures { dataBinding true } } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" // Support libraries implementation "androidx.appcompat:appcompat:1.2.0" implementation 'com.google.android.material:material:1.2.0' implementation "androidx.fragment:fragment:1.2.5" implementation "androidx.constraintlayout:constraintlayout:2.0.0" // Android KTX implementation 'androidx.core:core-ktx:1.3.1' // Room and Lifecycle dependencies implementation "androidx.room:room-runtime:$room_version" implementation 'androidx.legacy:legacy-support-v4:1.0.0' kapt "android.arch.persistence.room:compiler:$room_version" // Kotlin Extensions and Coroutines support for Room implementation "androidx.room:room-ktx:$room_version" // Coroutines implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutine_version" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutine_version" } kotlin_version = "1.4.0" room_version = "2.2.5" coroutine_version = '1.3.9'
Je souhaite ajouter dans mon projet Kotlin Coroutines et l'utiliser avec la base de données Room. Mais après avoir ajouté toutes les bibliothèques, j'ai eu cette erreur. Ce sont toutes les informations du compilateur.
J'ai identifié, c'est à cause de l'annotation @Database. Si j'ai supprimé cette annotation, l'erreur n'apparaît pas, mais Room ne fonctionne pas non plus.
Mon fichier gradle:
Execution failed for task ':app:kaptDebugKotlin'. > A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution > java.lang.reflect.InvocationTargetException (no error message)
Je mets à jour la version Room et ajoute Kotlin Coroutines. Quel problème?
5 Réponses :
Vous avez besoin de changement:
kapt "androidx.room:room-compiler:$room_version"
à
kapt "android.arch.persistence.room:compiler:$room_version"
A travaillé pour moi. Rien d'autre ne l'a fait.
J'ai dû mettre à jour Room vers la dernière version 2.2.5
et cela a résolu le problème.
Cette exception se produit lorsque vous avez fait une erreur sur la base de données Room ou Doa ou une classe d'entité par exemple j'avais fait des erreurs dans la classe d'entité
donc je suggérerais de vérifier soigneusement l'entité, le dao ou la classe de base de données si vous avez importé la bonne dépendance.
@Entity(tableName = "user_table") data class User( val firstName: String, val lastName: String, val age: Int ) { @PrimaryKey(autoGenerate = true) var id: Int = 0 //**do not made it val** }
Cette réponse est également valable pour ce type d'erreur. J'ai une erreur dans un nom de clé étrangère et je l'ai corrigée pour résoudre le problème. Merci
ouais j'ai eu une erreur dans la classe d'entrée.
J'avais fait face au même problème. Le problème était que j'utilisais les fonctions de suspension coroutine dans la salle DAO et que je n'avais pas implémenté les implémentations nécessaires. Ce qui suit a fonctionné pour moi, essayez de remplacer les dépendances de salle existantes par:
def room_version = "2.2.5" //Use latest version "androidx.room:room-runtime:$room_version" "androidx.room:room-compiler:$room_version" "androidx.room:room-ktx:$room_version"
Si ce qui précède ne fonctionne pas, accédez à Analyser-> Inspecter le code et recherchez les avertissements ou erreurs de rupture de code (en particulier dans la salle)
L'interface utilisateur d'Android Studio cachait juste l'erreur ...
lorsque l'erreur s'est produite, il a mis en surbrillance l'élément dans la vue de liste et a montré un message inutile dans la vue du terminal.
pour trouver l'erreur réelle, sélectionnez l'élément racine dans la vue de liste afin qu'Android Studio affiche la totalité de la sortie de construction dans la vue du terminal, puis faites défiler pour trouver l'erreur.
donnez à cet homme une médaille, vous m'avez sauvé du temps, que Dieu vous bénisse!
tu as sauvé ma journée