【问题标题】:error: Cannot find setter for field - Room错误:找不到字段的设置器 - 房间
【发布时间】:2020-10-17 05:28:45
【问题描述】:

我真的不知道为什么会出现这个错误。代码看起来很简单。

@Entity(indices = {@Index("clientLocalId")})
.
.

private @PrimaryKey String clientLocalId;


public String getClientLocalId() {
    return clientLocalId;
}

public void setClientLocalId(long idInvoice, String receipt) {
    this.clientLocalId = String.valueOf(idInvoice) + " " + receipt;
}

我试图在 client 中更改名称,重新启动并清除缓存,同样的错误。

错误:找不到字段的设置器。 私人@PrimaryKey String clientLocalId; ^

任何想法都值得赞赏。提前致谢!

【问题讨论】:

    标签: android android-room


    【解决方案1】:

    这是因为clientLocalId的第二个参数receipt, 删除它或添加另一个 setter 方法, 我建议您在插入数据库之前将收据添加到实体类之外的clientLocalId

    【讨论】:

      【解决方案2】:

      Room 正在寻找一个只接受单个 String 值的 setter。你的方法有两个。

      将其更改为以下并使用另一种方法来创建您的串联 id。

      public void setClientLocalId(String id) {
          this.clientLocalId = id;
      }
      

      【讨论】:

        猜你喜欢
        • 2020-02-24
        • 2018-05-09
        • 1970-01-01
        • 2018-07-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-26
        相关资源
        最近更新 更多