You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Room预填充数据库时出现Pre-packaged database invalid schema错误

错误根因定位

从抛出的日志可以直接看到两个核心不匹配点:

  1. Room期望的EnglishMarathi表结构中没有englishTyped字段,但你内置的预打包数据库里的EnglishMarathi表多了这个字段,结构不一致直接触发校验失败
  2. 你后续贴的schema配置对应的是MarathiEnglish表,和报错的EnglishMarathi是两张不同的表,存在表名配置混淆的问题

排查解决步骤

  • 核对实体类与预打包库的字段匹配
    检查你定义的EnglishMarathi实体类,如果业务需要englishTyped字段,就在实体类中新增该字段,声明为可空String类型即可;如果不需要该字段,就用DB Browser Lite打开预打包数据库,删除EnglishMarathi表中的englishTyped列,保证两者字段完全一致。
  • 核对表名配置
    确认你的业务实际用到的表名:
    • 如果用的是EnglishMarathi表,检查实体类上@Entity注解的tableName属性是否为EnglishMarathi,同时对照自动生成的schema.json中对应表的createSql语句,完全照搬该语句重新建预打包库的表
    • 如果用的是MarathiEnglish表,检查Room数据库类的entities参数是否已经添加了MarathiEnglish实体类,同时保证预打包库中有对应结构的MarathiEnglish表
  • 建表后执行结构校验
    用DB Browser Lite打开预打包数据库,执行PRAGMA table_info(你的表名),将输出的字段信息和Room错误日志中Expected的TableInfo逐行比对,要保证字段名、字段类型、非空约束、主键位置完全一致,任意一项不匹配都会触发校验错误
  • 清理缓存后测试
    修改完预打包数据库后,先卸载设备上已安装的旧App,清除本地已经生成的旧数据库缓存,再重新安装App测试,避免旧数据干扰校验结果。

内容的提问来源于stack exchange,提问作者Shreyash.K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 20:15:00