Realmente no sé por qué tengo este error. El código parece bastante sencillo.

@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;
}

Traté de cambiar el nombre solo en cliente , reinicié y borré cachés, el mismo error.

Error: no se puede encontrar el setter para el campo. private @PrimaryKey String clientLocalId; ^

Cualquier idea es apreciada. Gracias por adelantado !

0
Vlad.mir 26 jun. 2020 a las 18:09

2 respuestas

La mejor respuesta

Room busca un setter que solo tome un único valor de cadena. Tu método tiene dos.

Cambie a la siguiente y use otro método para crear su identificación concatenada.

public void setClientLocalId(String id) {
    this.clientLocalId = id;
}
0
Ivan Wooll 26 jun. 2020 a las 15:17

Sucedió debido al segundo parámetro receipt de clientLocalId, eliminarlo o agregar otro método de establecimiento, te recomiendo que agregues el recibo a tu clientLocalId fuera de la clase de entidad antes de insertarlo en la Base de datos

1
mohammad jahangiry 26 jun. 2020 a las 15:15