Java Can';我没有空间归还FTS4桌子';rowid';领域在sqlite3命令行中工作良好

Java Can';我没有空间归还FTS4桌子';rowid';领域在sqlite3命令行中工作良好,java,android,database,sqlite,full-text-search,Java,Android,Database,Sqlite,Full Text Search,因此,我已经完成了创建FTS4表的步骤(我在获取空间方面遇到了问题,因此我在SQLite中创建了FTS4表并将其导入到项目中) 但是,每当我尝试查询数据库时,都会得到一个“预期:…实际:…”错误。以下是错误: TableInfo{name='citiesFts', columns={city=Column{name='city', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0, defaultValue='null'

因此,我已经完成了创建FTS4表的步骤(我在获取空间方面遇到了问题,因此我在SQLite中创建了FTS4表并将其导入到项目中)

但是,每当我尝试查询数据库时,都会得到一个“预期:…实际:…”错误。以下是错误:

TableInfo{name='citiesFts', columns={city=Column{name='city', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0, defaultValue='null'}, city_ascii=Column{name='city_ascii', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0, defaultValue='null'}, rowid=Column{name='rowid', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=1, defaultValue='null'}}, foreignKeys=[], indices=[]}
     Found:
    TableInfo{name='citiesFts', columns={city=Column{name='city', type='', affinity='1', notNull=false, primaryKeyPosition=0, defaultValue='null'}, city_ascii=Column{name='city_ascii', type='', affinity='1', notNull=false, primaryKeyPosition=0, defaultValue='null'}}, foreignKeys=[], indices=[]}
在“find”字段中,“rowid”字段没有显示,尽管我请求了它

这是导致错误的查询(位于我的FTS DAO中):

最后,这是citiesFts表的模式:

CREATE VIRTUAL TABLE 'citiesFts' USING FTS4('id', 'city', 'state_name', 'state_id', content='cities')
/* citiesFts(id,city,state_name,state_id) */;
任何帮助都将不胜感激

我可以在我的'CityFTS4'类中省略rowid字段,因为Android开发者文档声明主键字段是可选的,但是每当我尝试忽略它时,就会出现错误

    @Fts4(contentEntity = City.class)
@Entity(tableName = "citiesFts")
public class CityFTS4 {
    @PrimaryKey
    @ColumnInfo(name = "rowid")
    public int id;
    @ColumnInfo(name = "city")
    private final String cityName;
    @ColumnInfo(name = "city_ascii")
    private final String cityASCII;

    public CityFTS4( int id, String cityName, String cityASCII){
        this.cityName = cityName;
        this.cityASCII = cityASCII;
    }

    public String getCityName() {
        return cityName;
    }

    public String getCityASCII() {
        return cityASCII;
    }
    
CREATE VIRTUAL TABLE 'citiesFts' USING FTS4('id', 'city', 'state_name', 'state_id', content='cities')
/* citiesFts(id,city,state_name,state_id) */;