【问题标题】:Exception: Pre-packaged database has an invalid schema例外:预打包的数据库具有无效的架构
【发布时间】:2020-01-16 12:46:34
【问题描述】:

如果这个问题激怒了您,我很抱歉。我一直试图解决这么久。我仍然找不到“预期”和“找到”之间的区别。

Caused by: java.lang.IllegalStateException: Pre-packaged database has an invalid schema: question(com.bangladroid.drivingtest.database.model.Question).
 Expected:
TableInfo{name='question', columns={image=Column{name='image', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=0, defaultValue='null'}, question=Column{name='question', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}, answer=Column{name='answer', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=0, defaultValue='null'}, answer3=Column{name='answer3', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}, answer2=Column{name='answer2', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}, _id=Column{name='_id', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=1, defaultValue='null'}, favorite=Column{name='favorite', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=0, defaultValue='null'}, answer1=Column{name='answer1', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}}, foreignKeys=[], indices=[]}
 Found:
TableInfo{name='question', columns={image=Column{name='image', type='integer', affinity='3', notNull=false, primaryKeyPosition=0, defaultValue='null'}, question=Column{name='question', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}, answer=Column{name='answer', type='integer', affinity='3', notNull=false, primaryKeyPosition=0, defaultValue='null'}, answer3=Column{name='answer3', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}, answer2=Column{name='answer2', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}, _id=Column{name='_id', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=0, defaultValue='null'}, favorite=Column{name='favorite', type='integer', affinity='3', notNull=false, primaryKeyPosition=0, defaultValue='null'}, answer1=Column{name='answer1', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}}, foreignKeys=[], indices=[]}

“整数”和“整数”有什么区别吗? primaryKeyPosition 是什么意思?

【问题讨论】:

  • 你找到解决办法了吗?

标签: android android-sqlite android-room


【解决方案1】:

“整数”和“整数”有什么区别吗?

列类型不区分大小写。

我仍然找不到“预期”和“找到”之间的区别。

区别在于_id列的定义不同。

primaryKeyPosition=1(预期)v primaryKeyPosition=0(找到)

所以你需要让预打包的数据库定义_id列来包含PRIMARY KEY。 (Room 要求 Entity(table) 定义了主键,因此无法更改 Entity 以适应)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 2021-05-10
    • 1970-01-01
    • 2021-03-02
    • 2020-06-03
    • 2020-03-05
    相关资源
    最近更新 更多