Se ha eliminado una columna no válida al intentar consultar una columna.

Estoy intentando ejecutar la siguiente consulta en mi aplicación android:

private static final String[] PROJECTION = { Data.CONTACT_ID, Data.MIMETYPE, Data.DISPLAY_NAME, Phone.NUMBER, Phone.TYPE, StructuredName.GIVEN_NAME, StructuredName.MIDDLE_NAME, StructuredName.FAMILY_NAME, Data.DELETED }; private static final String SELECTION = "(" + Data.MIMETYPE + " = ? AND " + Phone.TYPE + " IN (?,?,?)) OR (" + Data.MIMETYPE + " IN (?))"; private static final String[] SELECTION_ARGS = { Phone.CONTENT_ITEM_TYPE, String.valueOf(Phone.TYPE_MOBILE), String.valueOf(Phone.TYPE_HOME), String.valueOf(Phone.TYPE_WORK), StructuredName.CONTENT_ITEM_TYPE }; final Cursor cursor = mContext.getContentResolver().query( Data.CONTENT_URI, PROJECTION, SELECTION, SELECTION_ARGS, Data.CONTACT_ID); 

Pero consigo el error siguiente:

 04-29 11:00:58.715 8588 15565 E DatabaseUtils: Writing exception to parcel 04-29 11:00:58.715 8588 15565 E DatabaseUtils: java.lang.IllegalArgumentException: Invalid column deleted 04-29 11:00:58.715 8588 15565 E DatabaseUtils: at android.database.sqlite.SQLiteQueryBuilder.computeProjection(SQLiteQueryBuilder.java:632) 04-29 11:00:58.715 8588 15565 E DatabaseUtils: at android.database.sqlite.SQLiteQueryBuilder.buildQuery(SQLiteQueryBuilder.java:447) 04-29 11:00:58.715 8588 15565 E DatabaseUtils: at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:387) 04-29 11:00:58.715 8588 15565 E DatabaseUtils: at com.android.providers.contacts.ContactsProvider2.doQuery(ContactsProvider2.java:6528) 04-29 11:00:58.715 8588 15565 E DatabaseUtils: at com.android.providers.contacts.ContactsProvider2.queryLocal(ContactsProvider2.java:6479) 04-29 11:00:58.715 8588 15565 E DatabaseUtils: at com.android.providers.contacts.ContactsProvider2.query(ContactsProvider2.java:5038) 04-29 11:00:58.715 8588 15565 E DatabaseUtils: at android.content.ContentProvider$Transport.query(ContentProvider.java:238) 04-29 11:00:58.715 8588 15565 E DatabaseUtils: at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112) 04-29 11:00:58.715 8588 15565 E DatabaseUtils: at android.os.Binder.execTransact(Binder.java:453) 

Quiero saber si el contacto que estoy leyendo se elimina o no, por lo que la columna Data.DELETED es necesaria para mí y que parece estar causando el error. Pero cuando comprobé la documentación de Android , DELETED parece ser una columna válida para usar con ContactsContract.Data.

One Solution collect form web for “Se ha eliminado una columna no válida al intentar consultar una columna.”

Cambiar el URI a ContactsContract.RawContactsEntity.CONTENT_URI como se menciona en ¿Cómo funcionan las columnas unidas implícitas con los datos de los contactos de Android? Parecía funcionar.

  • Android rawQuery - ¿Hay una manera de usar "IN" parametrizada para una colección de datos
  • ¿Cuál es la manera de insertar un enorme JSON datos en un DB de SQLite en android
  • ¿Cuál es el modo de subprocesamiento predeterminado de SQLite en Android?
  • ¿Es Parse.com un servicio adecuado para la copia de seguridad / sincronización con SQLite en Android?
  • Patrón de bloqueo de múltiples hilos de SQLiteDatabase
  • Utilizar SimpleCursorAdapter.ViewBinder para cambiar el color de TextView
  • Android: Bulk Insert, cuando InsertHelper está obsoleto
  • Sqlite Añadir columna en la tabla en una posición determinada (Android)
  • Accede a la base de datos sqlite de Android desde el PC de desarrollo
  • Cómo extender la clase BaseDaoImpl de ORMLite en Android para ampliar la funcionalidad
  • ¿Es posible usar Couch DB o MySql o cualquier otro DB en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.