Недавно я увидел новую функцию, анонсированную в Google I/O Room Persistence Library для работы с базами данных Sqlite на Android. Я искал официальную документацию и не нашел, какую зависимости, которые я должен импортировать в свой файл gradle в своем проекте Android. Кто-нибудь может дать мне руку?
Как импортировать библиотеку Room Persistence Library в проект Android
Ответы (11)
Зависимости можно найти в примере кода для компоненты новой архитектуры.
Корень:
allprojects {
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
Для помещения:
implementation 'android.arch.persistence.room:runtime:1.0.0-alpha1'
annotationProcessor 'android.arch.persistence.room:compiler:1.0.0-alpha1'
Для зависимостей жизненного цикла:
implementation 'android.arch.lifecycle:extensions:1.0.0-alpha1'
annotationProcessor 'android.arch.lifecycle:compiler:1.0.0-alpha1'
Добавление объектов Rxjava2 в качестве результата для наших запросов:
implementation 'android.arch.persistence.room:rxjava2:1.0.0-alpha1'
Тестовые переносы:
testImplementation'android.arch.persistence.room:testing:1.0.0-alpha1'
В вашем проекте root build.gradle
вы должны добавить репозиторий Google maven:
allprojects {
repositories {
jcenter()
maven {
// For Room Persistence Library
url "https://maven.google.com"
}
}
}
Затем в build.gradle
Модуля нужно добавить:
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'
Добавьте это, если вы хотите использовать объекты RxJava2 Publisher
и Flowable
в результате ваших запросов.
compile 'android.arch.persistence.room:rxjava2:1.0.0-alpha1'
И, наконец, добавьте эту зависимость в тестовые миграции.
testCompile'android.arch.persistence.room:testing:1.0.0-alpha1'
Обновление: библиотеки по-прежнему помечены как Alpha1, поэтому я думаю, что номер версии скоро будет обновлен, возможно, с использованием была обновлена и как указано в документации, вы можете использовать 1.0.+
, пока не будет окончательная версия может быть хорошей идеейroom 1.1.1
, используя следующие зависимости:
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"
}
откройте build.gradle(Project: projectName) и добавьте эти строки, если они не существуют.
Это позволяет получить доступ к репозиторию Google
allprojects {
repositories {
jcenter()
google()
}
}
затем откройте build.gradle(Module:app) и добавьте эти две строки к существующим зависимостям.
Для Java
def room_version = "1.1.0"
implementation "android.arch.persistence.room:runtime:$room_version"
annotationProcessor "android.arch.persistence.room:compiler:$room_version"
Для Котлина
вставьте эту строку за пределы зависимостей или области Android вверху, где применяются плагины kotlin
apply plugin: 'kotlin-kapt'
добавьте эти строки в зависимости
def room_version = "1.1.0"
implementation "android.arch.persistence.room:runtime:$room_version"
kapt "android.arch.persistence.room:compiler:$room_version"
чтобы быть в курсе последних версий зависимостей, посетите репозиторий mvn для комнаты
здесь вы найдете последнюю версию.
Попробуйте это, чтобы скомпилировать библиотеку Room Persistence
implementation 'android.arch.persistence.room:runtime:1.1.1';
annotationProcessor 'android.arch.persistence.room:compiler:1.1.1';
И добавьте это в градиент сборки корневого уровня
allprojects {
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
Добавление репозитория Google Maven Проекты Android Studio не настроены на доступ к этому репозиторию по умолчанию.
Чтобы добавить его в свой проект, откройте файл build.gradle для своего проекта (а не для вашего приложения или модуля) и добавьте выделенную строку, как показано ниже:
allprojects {
repositories {
jcenter()
maven { url 'https://maven.google.com' }
}
}
Добавьте компоненты архитектуры
Откройте файл build.gradle для вашего приложения или модуля и добавьте нужные вам артефакты в качестве зависимостей:
Для Lifecycles, LiveData и ViewModel добавьте:
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"
Для комнаты добавьте:
implementation "android.arch.persistence.room:runtime:1.0.0-alpha1"
annotationProcessor "android.arch.persistence.room:compiler:1.0.0-alpha1"
Для androidX и kapt
def room_version = "2.2.5"
implementation "androidx.room:room-runtime:$room_version"
implementation "androidx.room:room-rxjava2:$room_version"
kapt "androidx.room:room-compiler:$room_version"
Это работает с последней версией Android Studio 3.1.
В папке Gradle Scripts в Project build.gradle добавьте:
allprojects {
repositories {
...
maven { url 'https://maven.google.com' }
}
}
В Module build.gradle добавьте:
dependencies {
...
implementation "android.arch.persistence.room:runtime:1.0.0"
annotationProcessor "android.arch.persistence.room:compiler:1.0.0"
}
Источник: https://developer.android.com/topic/libraries/architecture/adding-components.html
Текущие (2018 02 14) версии:
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'
Откройте файл build.gradle
для вашего проекта (не для вашего приложения или модуля) и добавьте:
allprojects {
repositories {
google()
jcenter()
}
}
Откройте файл build.gradle
для вашего приложения или модуля и добавьте необходимые артефакты в качестве зависимостей:
dependencies {
implementation "android.arch.persistence.room:runtime:1.0.0"
annotationProcessor "android.arch.persistence.room:compiler:1.0.0"
}
Ссылка: Добавление компонентов Android
По состоянию на июль 2019 года, если вы хотите использовать Room с Kotlin, AndroidX, Coroutines или RxJava, добавьте строки ниже.
// 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
Отскакивая от ответа @Thracian, вот что мне пришлось сделать, следуя этой документации:
https://codelabs.developers.google.com/codelabs/android-room-with-a-view-kotlin/#13
/* 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'
Также в android {}
мне пришлось добавить:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
Несмотря на то, что я прочитал, с Kotlin вы все равно должны использовать annotationProcessor