Android对数据库表有一个约定,就是每张表都应该至少有_id这列。 ListView在使用CursorAdapter及其子类适配cursor的时候,会默认的获取 _id 这列的值。 如果你建的表没有 _id这列或者你的cursor中没有_id这列(查询时的projection中没有_id)就报错了。 所以使用CursorAdapter及其子类的时候一定要使查询时的projection包含_id。