How to import Room Persistence Library to an Android project

It's possible to find the dependencies on the example codelab for the new architecture components.

Root :

allprojects {
repositories {
    jcenter()
    maven {
        url "https://maven.google.com"
    }
}

For Room:

  implementation 'android.arch.persistence.room:runtime:1.0.0-alpha1'
  annotationProcessor 'android.arch.persistence.room:compiler:1.0.0-alpha1'

For Lifecycle dependencies:

  implementation 'android.arch.lifecycle:extensions:1.0.0-alpha1'
  annotationProcessor 'android.arch.lifecycle:compiler:1.0.0-alpha1'

Adding Rxjava2 objects as result for our queries:

  implementation 'android.arch.persistence.room:rxjava2:1.0.0-alpha1'

Test migrations:

  testImplementation'android.arch.persistence.room:testing:1.0.0-alpha1'

open build.gradle(Project: projectName) and add this lines if it doesn't exist.

This enables access to google repository

allprojects {
repositories {
    jcenter()
    google()
 }
}

next open build.gradle(Module:app) and add this two lines to existing dependencies

For Java

def room_version = "1.1.0"
implementation "android.arch.persistence.room:runtime:$room_version"
annotationProcessor "android.arch.persistence.room:compiler:$room_version"

For Kotlin

paste this line outside of the dependencies or android scope at the top where kotlin plugins are applied

apply plugin: 'kotlin-kapt'

add this lines to dependencies

def room_version = "1.1.0"
implementation "android.arch.persistence.room:runtime:$room_version"
kapt "android.arch.persistence.room:compiler:$room_version"

to keep yourself updated with the recent dependencies version visit mvn repository for room

here you will find the latest version. enter image description here


On your project root build.gradle you have to add Google's maven repository:

allprojects {
    repositories {
        jcenter()
        maven {
            // For Room Persistence Library
            url "https://maven.google.com"
        }
    }
}

And then on the build.gradle of the Module you should add:

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'

Add this if you want to use RxJava2 Publisher and Flowable objects as a result of your queries

compile 'android.arch.persistence.room:rxjava2:1.0.0-alpha1'

And finally add also this dependency to test migrations

testCompile'android.arch.persistence.room:testing:1.0.0-alpha1'

Update: The libraries are still marked as Alpha1 so I guess the version number will be updated soon, maybe using 1.0.+ until there is a final version could be a good idea have been updated and as definded on the documentation you can use room 1.1.1 using this dependencies:

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"
}