Android Room无法使用私有媒体资源

时间:2018-03-20 20:22:09

标签: android android-room

我目前有一个Note课程。

我已经设置了所有房间注释,它似乎找到了我私有财产的吸气剂。

这是我的班级:

@Entity(tableName = "notes")
public final class Note {

    @PrimaryKey
    @ColumnInfo(name = "id")
    @NonNull
    private final String mId;

    @ColumnInfo(name = "title")
    @Nullable
    private final String mTitle;

    @ColumnInfo(name = "desc")
    @Nullable
    private final String mDesc;

    @Ignore
    public Note(@Nullable String title, @Nullable String desc) {
        this(UUID.randomUUID().toString(), title, desc);
    }


    public Note(@NonNull String id, @Nullable String title, @Nullable String desc) {
        mId = id;
        mTitle = title;
        mDesc = desc;
    }

    @NonNull
    public String getmId() {
        return mId;
    }

    @Nullable
    public String getmTitle() {
        return mTitle;
    }

    @Nullable
    public String getmDesc() {
        return mDesc;
    }

}

当我构建我的项目时,一切都在那里。我在Messages Gradle Build

中得到了这个
Error:(18, 26) error: Cannot find getter for field.
Error:(22, 26) error: Cannot find getter for field.
Error:(26, 26) error: Cannot find getter for field.

链接回:

private final String mId;
private final String mTitle;
private final String mDesc;

但我确实有吸气剂,他们是公开的。

我目前正在使用:

implementation "android.arch.persistence.room:runtime:1.1.0-alpha3"
annotationProcessor "android.arch.persistence.room:compiler:1.1.0-alpha3"

Room

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

Room正在寻找例如mId属性的getter方法,按惯例,getMd不是getmId。

我建议将字段重命名为id,title,desc和mehtods到getId()getTitle()和getDesc()以提高可读性。