【发布时间】:2021-01-26 00:46:49
【问题描述】:
我正在尝试构建一个非常简单的数据库来存储 Hangman 游戏的分数。
我建立了一个实体:
@Entity(tableName = "scores") 数据类 DBScore( @首要的关键 var 伪: 字符串 = "", var score: Int = 0 ) {
}
//从DB模型到kotlin模型的转换方法 fun List.asDomainModel(): 列表 { 返回地图{ 分数( 伪 = it.伪, 分数 = it.score ) }
}
使用 db 文件用样本值预填充 db
INSTANCE = databaseBuilder( context.applicationContext, AppDataBase::class.java, "app_database" ) .createFromAsset("database/scores.db").build()
为此,我创建了以下 db 文件:https://wetransfer.com/downloads/c534dd62136c94f17c0ee71f1ef39a1920201011144837/6ff2b7
但我收到一个错误,不明白我的数据库出了什么问题:
原因:java.lang.IllegalStateException:预打包的数据库具有无效的架构:scores(com.example.hangmangame.database.entity.DBScore)。 预期的: TableInfo{name='scores', columns={pseudo=Column{name='pseudo', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=1, defaultValue='null'}, score=列{name='score',type='INTEGER',affinity='3',notNull=true,primaryKeyPosition=0,defaultValue='null'}},foreignKeys=[],indices=[]} 成立: TableInfo{name='scores', columns={score=Column{name='score', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=0, defaultValue='null'}, pseudo=列{name='pseudo', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=1, defaultValue='null'}}, foreignKeys=[], indices=[]}
似乎是列顺序的问题,但对我来说 SQL 对它不敏感。
感谢任何帮助。
问候
昆汀。
【问题讨论】:
标签: android database kotlin room