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

Android Room自动迁移报错:未找到schema '1.json'及生成方法咨询

Android Room AutoMigration 缺失schema 1.json 解决方法

问题根源:你直接将数据库版本从初始状态设为2,跳过了版本1的编译流程,导致Room没有生成对应版本1的schema文件(1.json),而AutoMigration需要对比前后版本的schema才能生效。

解决步骤:

  1. 回退版本并生成1.json

    • 修改@Database注解:将version改为1,移除AutoMigration(from=1,to=2)配置
    • 确保User1Message实体保持版本1时的结构(也就是你原本想作为旧版本的实体状态)
    • 执行编译操作(Android Studio中点击Build > Make Project),此时schemas/[你的数据库全类名]目录下会生成1.json
  2. 恢复版本并配置AutoMigration

    • 修改@Database注解:将version改回2,重新添加AutoMigration(from=1,to=2)
    • 按需修改User1Message的实体结构(比如新增字段、修改字段类型等,这也是你需要AutoMigration的原因)
    • 再次执行编译,Room会自动生成2.json,并能找到1.json完成迁移规则的校验

关键注意事项:

  • 确保Gradle中room.schemaLocation配置正确,kapt参数示例:
    android {
        defaultConfig {
            kapt {
                arguments {
                    arg("room.schemaLocation", "$projectDir/schemas")
                }
            }
        }
    }
    
  • 不要手动修改或删除schema目录下的文件,所有schema必须由Room编译时自动生成,否则会导致迁移校验失败
  • 如果之前误删过1.json,必须通过回退到版本1的实体结构重新编译生成,无法手动创建有效schema

内容的提问来源于stack exchange,提问作者GHH

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 21:29:54