Android对数据库表有一个约定。就是每张表都应该至少有_id这列。 listview在适配cursor的时候,会默认的获取 _id 这列的值,如果你建的表没有 _id这列的话,自然也就报错了。下面是CursorAdapter.java的类注释 以及 构造方法的代码 /** * Adapter that exposes data from a {@link android.database.Cursor Cursor} to a * {@link android.widget.ListView ListView} widget. The Cursor must include * a column named "_id" or this class will not work. */