J'ai récemment vu la nouvelle fonctionnalité annoncée sur Google I/O Room Persistence Library pour fonctionner avec les bases de données SQLite sur Android. Je me suis tourné vers le documentation officielle et je ne trouve pas les dépendances à importer dans mon fichier Gradle sur mon projet Android. Quelqu'un peut me donner un coup de main ?
Il est possible de trouver les dépendances sur l'exemple de codelab pour les nouveaux composants d'architecture.
Racine:
allprojects {
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
Pour la pièce:
implementation 'Android.Arch.persistence.room:runtime:1.0.0-alpha1'
annotationProcessor 'Android.Arch.persistence.room:compiler:1.0.0-alpha1'
Pour les dépendances du cycle de vie:
implementation 'Android.Arch.lifecycle:extensions:1.0.0-alpha1'
annotationProcessor 'Android.Arch.lifecycle:compiler:1.0.0-alpha1'
Ajout d'objets Rxjava2 comme résultat pour nos requêtes:
implementation 'Android.Arch.persistence.room:rxjava2:1.0.0-alpha1'
Testez les migrations:
testImplementation'Android.Arch.persistence.room:testing:1.0.0-alpha1'
Sur votre projet root build.gradle
vous devez ajouter le référentiel Maven de Google:
allprojects {
repositories {
jcenter()
maven {
// For Room Persistence Library
url "https://maven.google.com"
}
}
}
Et puis sur le build.gradle
du module , vous devez ajouter:
compile 'Android.Arch.persistence.room:runtime:1.0.0-alpha1'
annotationProcessor 'Android.Arch.persistence.room:compiler:1.0.0-alpha1'
compile 'Android.Arch.lifecycle:extensions:1.0.0-alpha1'
annotationProcessor 'Android.Arch.lifecycle:compiler:1.0.0-alpha1'
compile 'Android.Arch.persistence.room:rxjava2:1.0.0-alpha1'
testCompile'Android.Arch.persistence.room:testing:1.0.0-alpha1'
Ajoutez ceci si vous voulez utiliser les objets RxJava2 Publisher
et Flowable
à la suite de vos requêtes.
compile 'Android.Arch.persistence.room:rxjava2:1.0.0-alpha1'
Et enfin, ajoutez également cette dépendance à des migrations de test
testCompile'Android.Arch.persistence.room:testing:1.0.0-alpha1'
Update : Les bibliothèques sont toujours marqués comme Alpha1 donc je suppose que le numéro de version sera mis à jour bientôt, peut-être en utilisant ont été mis à jour et comme défini dans la documentation vous pouvez utiliser 1.0.+
jusqu'à ce qu'il y ait une version finale pourrait être une bonne idéeroom 1.1.1
en utilisant ces dépendances:
dependencies {
def room_version = "1.1.1"
implementation "Android.Arch.persistence.room:runtime:$room_version"
annotationProcessor "Android.Arch.persistence.room:compiler:$room_version" // use kapt for Kotlin
// optional - RxJava support for Room
implementation "Android.Arch.persistence.room:rxjava2:$room_version"
// optional - Guava support for Room, including Optional and ListenableFuture
implementation "Android.Arch.persistence.room:guava:$room_version"
// Test helpers
testImplementation "Android.Arch.persistence.room:testing:$room_version"
}
Essayez ceci pour compiler la bibliothèque Room Persistence
implementation 'Android.Arch.persistence.room:runtime:1.1.1';
annotationProcessor 'Android.Arch.persistence.room:compiler:1.1.1';
Et ajoutez ceci au niveau de la racine
allprojects {
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
Ajouter le référentiel Google Maven Android Les projets Studio ne sont pas configurés pour accéder à ce référentiel par défaut.
Pour l'ajouter à votre projet, ouvrez le fichier build.gradle de votre projet (et non celui de votre application ou de votre module) et ajoutez la ligne en surbrillance comme indiqué ci-dessous:
allprojects {
repositories {
jcenter()
maven { url 'https://maven.google.com' }
}
}
Ajouter des composants d'architecture
Ouvrez le fichier build.gradle de votre application ou de votre module et ajoutez les artefacts dont vous avez besoin en tant que dépendances:
Pour Lifecycles, LiveData et ViewModel, ajoutez:
implementation "Android.Arch.lifecycle:runtime:1.0.0-alpha1"
implementation "Android.Arch.lifecycle:extensions:1.0.0-alpha1"
annotationProcessor "Android.Arch.lifecycle:compiler:1.0.0-alpha1"
Pour la pièce, ajoutez:
implementation "Android.Arch.persistence.room:runtime:1.0.0-alpha1"
annotationProcessor "Android.Arch.persistence.room:compiler:1.0.0-alpha1"
* Add these in project level gradle
allprojects {
repositories {
jcenter()
maven { url 'https://maven.google.com' }
}
}
ext {
buildToolsVersion = "25.0.2"
supportLibVersion = "25.3.1"
archRoomVersion = "1.0.0-alpha1"
}
* Add these in module level gradle dependencies
dependencies {
compile 'Android.Arch.persistence.room:runtime:' + rootProject.archRoomVersion;
annotationProcessor 'Android.Arch.persistence.room:compiler:' + rootProject.archRoomVersion;
}
Cela fonctionne avec la dernière version de Android Studio 3.1.
Sous le dossier Gradle Scripts, dans le Projet build.gradle, ajoutez:
allprojects {
repositories {
...
maven { url 'https://maven.google.com' }
}
}
Dans le module , ajoutez:
dependencies {
...
implementation "Android.Arch.persistence.room:runtime:1.0.0"
annotationProcessor "Android.Arch.persistence.room:compiler:1.0.0"
}
Source: https://developer.Android.com/topic/libraries/architecture/adding-components.html
Pour androidX et kapt
def room_version = "2.1.0"
implementation "androidx.room:room-runtime:$room_version"
implementation "androidx.room:room-rxjava2:$room_version"
kapt "androidx.room:room-compiler:$room_version"
ouvrez build.gradle (Project: nomProjet) et ajoutez ces lignes si elles n'existent pas.
Cela permet d'accéder au référentiel google
allprojects {
repositories {
jcenter()
google()
}
}
next open build.gradle (Module: app) et ajoute ces deux lignes aux dépendances existantes
Pour Java
def room_version = "1.1.0"
implementation "Android.Arch.persistence.room:runtime:$room_version"
annotationProcessor "Android.Arch.persistence.room:compiler:$room_version"
Pour Kotlin
coller cette ligne en dehors des dépendances ou Android la portée en haut de l'application où les plugins kotlin sont appliqués
apply plugin: 'kotlin-kapt'
ajouter ces lignes aux dépendances
def room_version = "1.1.0"
implementation "Android.Arch.persistence.room:runtime:$room_version"
kapt "Android.Arch.persistence.room:compiler:$room_version"
pour vous tenir au courant de la visite de la version des dépendances récentes référentiel MVN pour la pièce
Les versions actuelles (2018 02 14) sont
compile 'Android.Arch.persistence.room:rxjava2:1.1.0-alpha1'
compile 'Android.Arch.persistence.room:runtime:1.1.0-alpha1'
annotationProcessor 'Android.Arch.persistence.room:compiler:1.1.0-alpha1'
compile 'Android.Arch.lifecycle:extensions:1.1.0'
annotationProcessor 'Android.Arch.lifecycle:compiler:1.1.0'
Rebondissant sur la réponse de Thracian, voici ce que je devais faire en suivant cette documentation:
https://codelabs.developers.google.com/codelabs/Android-room-with-a-view-kotlin/#1
/* Room */
implementation 'androidx.room:room-runtime:2.1.0'
kapt 'androidx.room:room-runtime:2.1.0'
implementation 'androidx.room:room-compiler:2.1.0'
kapt 'androidx.room:room-compiler:2.1.0'
annotationProcessor 'androidx.room:room-compiler:2.1.0'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0-alpha02'
kapt 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0-alpha02'
implementation 'androidx.room:room-ktx:2.1.0'
kapt 'androidx.room:room-ktx:2.1.0'
implementation 'Android.Arch.lifecycle:extensions:1.1.1'
kapt 'Android.Arch.lifecycle:extensions:1.1.1'
Aussi dans Android {}
J'ai dû ajouter:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
Malgré ce que j'ai lu, avec Kotlin, vous devez toujours utiliser annotationProcessor
Ouvrez le build.gradle
fichier pour votre projet (pas ceux de votre application ou de votre module) et ajoutez:
allprojects {
repositories {
google()
jcenter()
}
}
Ouvrez le build.gradle
fichier pour votre application ou module et ajoutez les artefacts dont vous avez besoin comme dépendances:
dependencies {
implementation "Android.Arch.persistence.room:runtime:1.0.0"
annotationProcessor "Android.Arch.persistence.room:compiler:1.0.0"
}
Référence: Android Adding Components
À partir de juillet 2019, si vous souhaitez utiliser Room avec Kotlin, AndroidX, Coroutines ou RxJava, ajoutez des lignes ci-dessous.
// Room
implementation 'androidx.room:room-runtime:' + rootProject.roomVersion
// For Kotlin use kapt instead of annotationProcessor
kapt 'androidx.room:room-compiler:' + rootProject.roomVersion
// optional - Kotlin Extensions and Coroutines support for Room
implementation 'androidx.room:room-ktx:' + rootProject.roomVersion
// optional - RxJava support for Room
implementation 'androidx.room:room-rxjava2:' + rootProject.roomVersion