Questions tagged «android-room»

对于与Android Room Persistence库(这是Android体系结构组件的一部分)有关的问题

18
Android Room数据库:如何在实体中处理Arraylist?
我刚刚实现了Room来保存离线数据。但是在Entity类中,出现以下错误: Error:(27, 30) error: Cannot figure out how to save this field into database. You can consider adding a type converter for it. 该类如下: @Entity(tableName = "firstPageData") public class MainActivityData { @PrimaryKey private String userId; @ColumnInfo(name = "item1_id") private String itemOneId; @ColumnInfo(name = "item2_id") private String itemTwoId; // THIS IS …

24
房间持久性:错误:实体和Pojos必须具有可用的公共构造函数
我正在将一个项目转换为Kotlin,并且试图将我的模型(也是我的实体)变成一个数据类,我打算使用Moshi来转换来自API的JSON响应 @Entity(tableName = "movies") data class MovieKt( @PrimaryKey var id : Int, var title: String, var overview: String, var poster_path: String, var backdrop_path: String, var release_date: String, var vote_average: Double, var isFavorite: Int ) 我无法构建导致以下错误的应用 实体和Pojos必须具有可用的公共构造函数。您可以有一个空的构造函数或一个其参数与字段匹配的构造函数(按名称和类型)。找不到字段的设置器。 我发现的例子离这个不远 关于如何解决的想法?

3
带有参数的Android Room @Delete
我知道我不能DELETE在查询中使用(顺便说一句很遗憾),我会收到以下错误: <i>Error:error: Observable query return type (LiveData, Flowable etc) can only be used with SELECT queries that directly or indirectly (via @Relation, for example) access at least one table.</i> 但是我不能使用@Delete(WHERE... xxx) 那么,如何通过参数删除特定行?

15
找不到字段的设置器-将Kotlin与Room数据库一起使用
我正在与Room持久性库集成。我在Kotlin中有一个数据类,例如: @Entity(tableName = "story") data class Story ( @PrimaryKey val id: Long, val by: String, val descendants: Int, val score: Int, val time: Long, val title: String, val type: String, val url: String ) 在@Entity和@PrimaryKey注解是为客房库。当我尝试构建时,它因错误而失败: Error:Cannot find setter for field. Error:Execution failed for task ':app:compileDebugJavaWithJavac'. > Compilation failed; see the …

4
分页库-具有API的页面和大小的网络+数据库的边界回调
简短问题: 使用使用页面+大小加载新页面和BoundaryCallback类的API,从Architecture组件处理分页库上数据库+网络的正确方法是什么? 研究与解释 当前,BoundaryCallback分页库中用于体系结构组件的类将列表中某个元素的实例作为参数接收,而没有该元素所在位置的实际上下文。它发生在onItemAtFrontLoaded和中onItemAtEndLoaded。 我的Api应该接收该页面和页面大小以加载下一个数据块。作为分页列表构建器的一部分添加的边界回调应根据预取距离和页面大小告诉您何时加载下一页数据。 由于API需要的页码和页面提供的尺寸,我没有看到一个方法只是通过接收从列表中提供的要素之一发送到APIonItemAtFrontLoaded和onItemAtEndLoaded。检查此链接中的google示例,它们使用最后一个元素的名称来获取下一个元素,但这不适合页面+大小的Api。 他们还提供了另一个示例,其中仅使用的网络PagedKeyedDatasource,但是没有有关如何将其与数据库和BoundaryCallback混合使用的示例或线索。 编辑:到目前为止,我发现的唯一解决方案是将最后加载的页面存储在共享首选项上,但这听起来像是一个肮脏的把戏。 请参阅 https://github.com/googlesamples/android-architecture-components/issues/252#issuecomment-392119468以获得官方信息。

8
如何将Room Persistence Library与预填充的数据库一起使用?
我想将Room与预填充的数据库一起使用,但是我不明白如何告诉Room在哪里可以找到我的数据库。 现在,将其放入,src/main/assets/databases并在创建Room数据库的实例时以这种方式创建它: Room.databaseBuilder( getApplicationContext(), AppDatabase.class, "justintrain.db" ) .allowMainThreadQueries() .build(); 这样,我认为它每次都会创建一个新数据库,或者无论如何,它都没有使用预先填充的数据库。 我怎样才能找到我的数据库?

1
Jetpack编写中断Room编译器
我使用Android Studio 4.0 Canary 6创建了一个全新的jetpack撰写项目(通过项目模板),并尝试添加房间相关性。这是我的应用程序级别build.gradle: apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' android { compileSdkVersion 29 buildToolsVersion "29.0.2" defaultConfig { applicationId "com.example.composewithroom" minSdkVersion 29 targetSdkVersion 29 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions …


1
将Kotlin内联类作为实体字段的会议室数据库
我试图让Room(https://developer.android.com/topic/libraries/architecture/room)与Kotlin的内联类一起工作,如Jake Whartons文章内联类使数据库ID大: @Entity data class MyEntity( @PrimaryKey val id: ID, val title: String ) inline class ID(val value: String) 编译此房间时抱怨 实体和Pojos必须具有可用的公共构造函数。您可以有一个空的构造函数或一个其参数与字段匹配的构造函数(按名称和类型)。 查看生成的Java代码,我发现: private MyEntity(String id, String title) { this.id = id; this.title = title; } // $FF: synthetic method public MyEntity(String id, String title, DefaultConstructorMarker $constructor_marker) { this(id, title); } …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.