如何解决Kotlin Andoid预生产数据库
我正在尝试建立一个非常简单的数据库来存储Hangman游戏的得分。
我建立了一个实体:
@Entity(tableName =“ scores”)数据类DBscore( @首要的关键 var pseudo:String =“”, var score:Int = 0){
}
//从DB模型到kotlin模型的转换方法很有趣 List.asDomainModel():列表{ 返回地图{ 得分( 伪= it.pseudo, 分数= it.score ) }
}
INSTANCE = databaseBuilder( context.applicationContext,AppDataBase::class.java,"app_database" ) .createFromAsset("database/scores.db").build()
我已经创建了以下数据库文件: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'},分数=列{name ='score',type ='INTEGER',affinity ='3',notNull = true,primaryKeyPosition = 0,defaultValue ='null'}},foreignKeys = [],indexs = []} 发现: TableInfo {名称='分数',列= {分数=列{名称='分数',类型='INTEGER',亲和力='3',notNull = false,primaryKeyPosition = 0,defaultValue ='null'},伪=列{name ='pseudo',type ='TEXT',affinity ='2',notNull = true,primaryKeyPosition = 1,defaultValue ='null'}},foreignKeys = [],indexs = []}
似乎是列顺序的问题,但对我而言,sql对它并不敏感。
寻求帮助。
致谢
昆汀。
解决方法
Room期望score
为NOT NULL
。显然,基于该错误,您预先填充的数据库架构将其命名为NULL
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。