最近、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"
}
}
}
そしてModuleの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'
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"
}
これを試して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ファイルを開き、必要なアーティファクトを依存関係として追加します。
ライフサイクル、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"
* 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;
}
これは、Android Studio 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
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"
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リポジトリ
現在の(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
を使用する必要があります
プロジェクト(アプリまたはモジュール用ではない)の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年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