预打包数据库在 Room Android kotlin 中具有无效架构

问题描述 投票:0回答:1

您好,我正在尝试从资产文件夹 SQL DB 获取数据,但它显示此错误。

    java.lang.IllegalStateException: Pre-packaged database has an invalid schema: recipetype(com.example.finddishrecipe.room.RecipeEntity).
                                                                                                         Expected:
                                                                                                        TableInfo{name='recipetype', columns={name=Column{name='name', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='undefined'}, image=Column{name='image', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='undefined'}, id=Column{name='id', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=1, defaultValue='undefined'}}, foreignKeys=[], indices=[]}
                                                                                                         Found:
                                                                                                        TableInfo{name='recipetype', columns={id=Column{name='id', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=1, defaultValue='undefined'}, name=Column{name='name', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0, defaultValue='undefined'}, image=Column{name='image', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0, defaultValue='undefined'}}, foreignKeys=[], indices=[]}```





<brThis is my entity code/>


@Entity(tableName = "recipetype")

数据类RecipeEntity( @首要的关键 @ColumnInfo(名称=“id”) 有效 ID:整数,

@ColumnInfo(name = "name")
val name: String,

@ColumnInfo(name = "image")
val image: String)
android kotlin android-studio android-room database-migration
1个回答
0
投票

所有列都应该具有非空约束。创建表时将它们定义为非空值,如下所示:

CREATE TABLE "recipetype" ( "id" INTEGER NOT NULL, "name" TEXT NOT NULL, "image" TEXT NOT NULL, PRIMARY KEY("id" AUTOINCREMENT) )

或者您可以将实体类列设置为可空值。

列的顺序并不重要。

© www.soinside.com 2019 - 2024. All rights reserved.