web-dev-qa-db-ja.com

Room Persistence LibraryをAndroidプロジェクトにインポートする方法

最近、AndroidのSqliteデータベースで動作する新しい機能がGoogle I/O Room Persistence Libraryで発表されました。 公式ドキュメント を探していましたが、Androidプロジェクトのgradleファイルにインポートすべき依存関係が見つかりません。誰かが私に手を差し伸べることができますか?

新しいアーキテクチャコンポーネントの サンプルコードラボ の依存関係を見つけることができます。

ルート:

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'

プロジェクトrootbuild.gradleで、Googleのmavenリポジトリを追加する必要があります。

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

そしてModulebuild.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'

RxJava2PublisherおよびFlowableオブジェクトをクエリの結果として使用する場合、これを追加します

compile 'Android.Arch.persistence.room:rxjava2:1.0.0-alpha1'

最後に、この依存関係もテスト移行に追加します

testCompile'Android.Arch.persistence.room:testing:1.0.0-alpha1'

Update:ライブラリ まだAlpha1とマークされているので、バージョン番号はすぐに更新されると思います。おそらく、finalバージョンが出るまで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"
}
7
pconcepcion

これを試して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"
    }
}
5
Rajat Sharma

Android doc

Google Mavenリポジトリを追加しますAndroid St​​udioプロジェクトは、デフォルトでこのリポジトリにアクセスするように構成されていません。

プロジェクトに追加するには、プロジェクトのbuild.gradleファイル(アプリやモジュールではなく)を開き、以下に示すように強調表示された行を追加します。

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

アーキテクチャコンポーネントを追加する

アプリまたはモジュールのbuild.gradleファイルを開き、必要なアーティファクトを依存関係として追加します。

ライフサイクル、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"
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

これは、Android St​​udio 3.1の最新バージョンで動作します。

Gradle ScriptsフォルダーのProjectbuild.gradleで、以下を追加します。

allprojects {
    repositories {

...

        maven { url 'https://maven.google.com' }
    }
}

Modulebuild.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

2
live-love

androidXおよび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

build.gradle(Project:projectName)を開き、この行が存在しない場合は追加します。

これにより、Googleリポジトリへのアクセスが可能になります

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

次にbuild.gradle(Module:app)を開き、この2行を既存の依存関係に追加します

Javaの場合

def room_version = "1.1.0"
implementation "Android.Arch.persistence.room:runtime:$room_version"
annotationProcessor "Android.Arch.persistence.room:compiler:$room_version"

コトリン用

この行を依存関係の外側またはkotlinプラグインが適用される上部のAndroidスコープの外側に貼り付けます

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リポジトリ

ここに最新バージョンがあります。 enter image description here

2
sudesh

現在の(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'

@Thracianの答えを跳ね返して、このドキュメントをフォローしている間に私がしなければならなかったことは次のとおりです:

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'

また、Android {}内に追加する必要がありました:

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

私が読んだことにもかかわらず、KotlinではannotationProcessorを使用する必要があります

0
TaimoorAhmad

プロジェクト(アプリまたはモジュール用ではない)の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追加コンポーネント

0
Hasan A Yousef

2019年7月の時点で、Kotlin、AndroidX、コルーチン、または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
0
Thracian