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



DBFlow 版本:4.2.4

错误

或功能请求:错误

描述:已将库从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"

我的应用程序类如下;

FlowManager.init(FlowConfig.builder(this) .addDatabaseConfig(DatabaseConfig.builder(TestDatabase.class) .databaseName("test_database") .build()) .build()); 我们的测试数据库.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)

测试会员.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对我有用。

最新更新