【发布时间】:2018-06-24 11:18:58
【问题描述】:
我正在尝试通过 Room Persistence 库将数据库添加到我的 Android 应用程序。在编译时得到上述错误。此外,Room 找不到我的吸气剂,尽管我可以在我的代码中清楚地看到所有吸气剂。
这是我的实体代码:
@Entity(tableName = "users", indices = @Index(value = "username", unique = true))
public class User {
@NonNull
public String getuId() {
return uId;
}
public void setuId(@NonNull String uId) {
this.uId = uId;
}
public String getuUsername() {
return uUsername;
}
public void setuUsername(String uUsername) {
this.uUsername = uUsername;
}
@NonNull
public String getuPassword() {
return uPassword;
}
public void setuPassword(@NonNull String uPassword) {
this.uPassword = uPassword;
}
public String getuEmail() {
return uEmail;
}
public void setuEmail(String uEmail) {
this.uEmail = uEmail;
}
@NonNull
@PrimaryKey
@ColumnInfo(name = "user_id")
private String uId;
@ColumnInfo(name = "username")
private String uUsername;
@NonNull
@ColumnInfo(name = "password")
private String uPassword;
@ColumnInfo(name = "email")
private String uEmail;
@Ignore
public User(String userName, String email, String password){
uId = UUID.randomUUID().toString();
uUsername = userName;
uEmail = email;
uPassword = password;
}
public User(@NonNull String id, String username, String email,@NonNull String password){
this.uId = id;
this.uUsername = username;
this.uPassword = password;
this.uEmail = email;
}
}
我得到的错误是:
Error:(14, 8) 错误:实体和 Pojos 必须有一个可用的公共构造函数。您可以有一个空的构造函数或参数与字段匹配的构造函数(按名称和类型)。 尝试了以下构造函数,但它们未能匹配: 用户(java.lang.String,java.lang.String,java.lang.String,java.lang.String):[id:null,用户名:null,电子邮件:null,密码:null]
还有这个:
错误:(53, 20) 错误:找不到字段的 getter。 错误:(56, 20) 错误:找不到字段的 getter。 错误:(60, 20) 错误:找不到字段的 getter。 错误:(63, 20) 错误:找不到字段的 getter。
【问题讨论】:
-
将参数名称更改为您的四参数构造函数以匹配字段名称。
-
是的。我认为这里的错误信息很清楚。
uUsername != username -
如果这是我必须做的,我会跳下悬崖。立即测试!
-
好吧,我现在觉得自己很愚蠢。谢谢,这解决了我的第一个问题。房间仍然无法找到我所有的吸气剂。有什么想法吗?
标签: java android android-room