web-dev-qa-db-fra.com

Comment importer une bibliothèque de persistance de la pièce dans un projet Android

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 1.0.+ jusqu'à ce qu'il y ait une version finale pourrait être une bonne idée ont été mis à jour et comme défini dans la documentation vous pouvez utiliser room 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"
}
7
pconcepcion

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"
    }
}
5
Rajat Sharma

doc Android :

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"
4
Zimbo Rodger
    * 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;

}
3
sharmitha

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

2
live-love

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"
2
Radesh

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

vous trouverez ici la dernière version. enter image description here

2
sudesh

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

0
TaimoorAhmad

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

0
Hasan A Yousef

À 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
0
Thracian