如何将Room Persistence Library导入Android项目

53

我最近看到了Google I/O宣布的新功能,即Room Persistence Library,可用于在Android上使用Sqlite数据库。我一直在查看官方文档,但我没有找到应该导入到我的Android项目gradle文件中的依赖关系。有人能帮帮我吗?

13个回答

57

这个示例代码实验室中,可以找到新架构组件的依赖关系。

根目录:

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'

7
在您的项目根目录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 PublisherFlowable对象作为查询结果,请添加以下内容

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

1
我有一个模块,其中我使用了Room。该模块是一个Java库。我添加了依赖项,但在与Gradle文件同步项目时出现以下错误:无法找到方法annotationProcessor(),其参数为[android.arch.persistence.room:compiler:1.1.1],类型为org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler的对象上。那么,在Java库中使用Room是否存在问题? - user3245268
遇到了同样的问题。 - oneManArmin
好的,对我来说问题是我把东西放在了错误的build.gradle文件中。请参考@live-love的答案,那里有另一个好的解决方案。 - oneManArmin

5
打开 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"

对于Kotlin

将此行粘贴到依赖项或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

在这里,您将找到最新版本。 在此输入图片描述


5

针对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"

5

试试这个来编译 Room 持久性库

implementation 'android.arch.persistence.room:runtime:1.1.1';
annotationProcessor 'android.arch.persistence.room:compiler:1.1.1';

在根级别的build gradle文件中添加以下内容。
allprojects {
repositories {
    jcenter()
    maven {
        url "https://maven.google.com"
    }
}

5

Android文档:

添加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"

对于Room,添加:

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

3
    * 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;

}

2

本教程适用于最新版本的Android Studio 3.1。

在Gradle Scripts文件夹中, 在Project build.gradle文件中添加以下内容:

allprojects {
    repositories {

...

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

模块的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

在 Android 应用程序中使用架构组件时,您可以添加以下组件:

  • Room:一个 SQLite 对象映射库,可提供与 SQLite 数据库的流畅访问。
  • LiveData:一种可观察的数据存储器类,可感知应用程序中的生命周期,并在数据更改时通知其观察者。
  • ViewModel:一种用于存储和管理 UI 相关数据的类。
  • Paging:一种逐步加载数据的库,可根据用户滚动行为等因素来优化 RecyclerView 的性能。
  • WorkManager:一种可靠地安排即使在应用程序终止或设备重新启动后也能运行的后台任务的库。
  • Navigation:一种可帮助用户浏览应用程序并在不同屏幕之间导航的库。

1

当前(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'

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 添加组件


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接