You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio报错:无法从Cursor读取字段,Room查询对象加私有变量引发问题

解决Room查询POJO添加私有变量后报错的问题

问题原因

Room在处理用于接收联合查询结果的POJO类时,会扫描类中所有成员变量(无论访问修饰符是public还是private),尝试将数据库查询游标中的列与这些变量一一映射。你新增的私有变量tester没有对应的数据库查询列,Room无法从游标中找到对应数据,因此抛出Cannot figure out how to read this field from a cursor错误。

解决方案

给这个私有辅助变量添加@Ignore注解,明确告诉Room忽略该变量,不要尝试从游标中读取对应数据:

import androidx.room.Ignore

class ReadObject ( var id: Long,
                   var description: String?,
                   var relationOf: Int,
                   var namerelation: String ) { 
    @Ignore
    private var tester: Int = 0 
    // 你的构造函数变体和辅助函数
}

补充说明

Room的编译期注解处理器不会因为变量是私有就跳过处理,只要变量没有被@Ignore标记,就会被纳入映射逻辑。所以即使是内部辅助变量,也必须显式标记忽略,避免触发映射错误。

内容的提问来源于stack exchange,提问作者Michel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 10:07:00