模型对象 <Model.class> 未在数据库中注册。你忘了注释吗?

Model object<Model.class> is not registered with a Database. Did you forget an annotation?

DBFlow Version:4.2.4

错误或功能 Request:Bug

描述:已将库从 4.0.0-beta1 升级到 4.2.4。将库包含在我的 gradle 文件中,如下所示:-

dbFlow : "com.github.Raizlabs.DBFlow:dbflow:4.2.4", dbFlowProcessor : "com.github.Raizlabs.DBFlow:dbflow-processor:4.2.4", dbFlowCore : "com.github.Raizlabs.DBFlow:dbflow-core:4.2.4"

我的申请class如下;-

FlowManager.init(FlowConfig.builder(this) .addDatabaseConfig(DatabaseConfig.builder(TestDatabase.class) .databaseName("test_database") .build()) .build()); 我们的TestDatabase.class如下:-

@Database(version = TestDatabase.VERSION) public class TestDatabase { public static final int VERSION = 11; }

以下是堆栈跟踪:-

Caused by: com.raizlabs.android.dbflow.structure.InvalidDBConfiguration: Model object: com.xxxx.TestMember is not registered with a Database. Did you forget an annotation? at com.raizlabs.android.dbflow.config.FlowManager.getDatabaseForTable(FlowManager.java:141) at com.raizlabs.android.dbflow.config.FlowManager.getModelAdapterOrNull(FlowManager.java:469) at com.raizlabs.android.dbflow.config.FlowManager.getTableName(FlowManager.java:79) at com.raizlabs.android.dbflow.sql.language.From.getTableAlias(From.java:43) at com.raizlabs.android.dbflow.sql.language.From.getQuery(From.java:211) at com.raizlabs.android.dbflow.sql.language.Where.getQuery(Where.java:189) at com.raizlabs.android.dbflow.sql.language.BaseModelQueriable.querySingle(BaseModelQueriable.java:67) at com.raizlabs.android.dbflow.sql.language.Where.querySingle(Where.java:249)

TestMember.class如下:-

@Table(database = TestDatabase.class, cachingEnabled = true)
public class TestMemberextends BaseModel implements Serializable {

    @Column
    public String name;

    @Column
    public String username;

    @Column
    public String phone;

    @PrimaryKey
    public String id;

    @Column
    public String pictureUrl;

    @Column
    public String thumb;

    @Column
    public String status;

    @Column
    public String members;

    @Column
    public String membersUsernames;

    @Column
    public String admin;

    @Column
    public String adminUsername;

    @Column
    public String presence;

    @Column
    public boolean isBlocked;

    @Column
    public boolean isMuted;

    @Column(defaultValue = "0")
    public int placeholder;

    public TestMember() {
    }

    public TestMember(String id) {
        this.id = id;
    }

    @Override
    public boolean equals(Object obj) {
        TestMember testMember= (TestMember) obj;
        return this.id.equals(TestMember.id);
    }

}

感谢帮助!!

由新版本的 dbFlow 处理的注释被破坏,重命名 类 TestMember.classTestDatabase.class 对我有用。