After a fight with some code intended to set contact photos in the contacts DB on 2.2, the contacts are now unable to sync - I get:
android.database.sqlite.SQLiteException: unknown error: Unable to convert BLOB to string every time the contact provider attempts a sync, and a popup telling me that com.google.process.gapps has died. I think this means that there is duff data in ContactsContract.DATA somewhere. Is there any way to work out which mimetypes correspond to which columns and types in the DATA table, so i can sanitise it ? Thanks, Richard Here's the stack from the crash: 10-05 18:32:31.606: ERROR/DatabaseUtils(216): Writing exception to parcel 10-05 18:32:31.606: ERROR/DatabaseUtils(216): android.database.sqlite.SQLiteException: unknown error: Unable to convert BLOB to string 10-05 18:32:31.606: ERROR/DatabaseUtils(216): at android.database.CursorWindow.getString_native(Native Method) 10-05 18:32:31.606: ERROR/DatabaseUtils(216): at android.database.CursorWindow.getString(CursorWindow.java:329) 10-05 18:32:31.606: ERROR/DatabaseUtils(216): at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java: 49) 10-05 18:32:31.606: ERROR/DatabaseUtils(216): at com.android.providers.contacts.ContactsProvider2$DataRowHandler.getAugmentedValues(ContactsProvider2.java: 1111) 10-05 18:32:31.606: ERROR/DatabaseUtils(216): at com.android.providers.contacts.ContactsProvider2$StructuredNameRowHandler.update(ContactsProvider2.java: 1171) 10-05 18:32:31.606: ERROR/DatabaseUtils(216): at com.android.providers.contacts.ContactsProvider2.updateData(ContactsProvider2.java: 3839) 10-05 18:32:31.606: ERROR/DatabaseUtils(216): at com.android.providers.contacts.ContactsProvider2.updateData(ContactsProvider2.java: 3823) 10-05 18:32:31.606: ERROR/DatabaseUtils(216): at com.android.providers.contacts.ContactsProvider2.updateInTransaction(ContactsProvider2.java: 3509) 10-05 18:32:31.606: ERROR/DatabaseUtils(216): at com.android.providers.contacts.SQLiteContentProvider.update(SQLiteContentProvider.java: 155) 10-05 18:32:31.606: ERROR/DatabaseUtils(216): at com.android.providers.contacts.ContactsProvider2.update(ContactsProvider2.java: 2259) 10-05 18:32:31.606: ERROR/DatabaseUtils(216): at android.content.ContentProviderOperation.apply(ContentProviderOperation.java: 225) 10-05 18:32:31.606: ERROR/DatabaseUtils(216): at com.android.providers.contacts.SQLiteContentProvider.applyBatch(SQLiteContentProvider.java: 216) 10-05 18:32:31.606: ERROR/DatabaseUtils(216): at com.android.providers.contacts.ContactsProvider2.applyBatch(ContactsProvider2.java: 2272) 10-05 18:32:31.606: ERROR/DatabaseUtils(216): at android.content.ContentProvider $Transport.applyBatch(ContentProvider.java:193) 10-05 18:32:31.606: ERROR/DatabaseUtils(216): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java: 173) 10-05 18:32:31.606: ERROR/DatabaseUtils(216): at android.os.Binder.execTransact(Binder.java:288) 10-05 18:32:31.606: ERROR/DatabaseUtils(216): at dalvik.system.NativeStart.run(Native Method) 10-05 18:32:31.626: WARN/dalvikvm(199): threadid=20: thread exiting with uncaught exception (group=0x4001d7f0) 10-05 18:32:31.756: ERROR/AndroidRuntime(199): FATAL EXCEPTION: SyncAdapterThread-1 10-05 18:32:31.756: ERROR/AndroidRuntime(199): android.database.sqlite.SQLiteException: unknown error: Unable to convert BLOB to string 10-05 18:32:31.756: ERROR/AndroidRuntime(199): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java: 158) 10-05 18:32:31.756: ERROR/AndroidRuntime(199): at android.database.DatabaseUtils.readExceptionWithOperationApplicationExceptionFromParcel(DatabaseUtils.java: 137) 10-05 18:32:31.756: ERROR/AndroidRuntime(199): at android.content.ContentProviderProxy.applyBatch(ContentProviderNative.java: 449) 10-05 18:32:31.756: ERROR/AndroidRuntime(199): at android.content.ContentProviderClient.applyBatch(ContentProviderClient.java: 95) 10-05 18:32:31.756: ERROR/AndroidRuntime(199): at com.google.android.syncadapters.contacts.ContactsSyncAdapter.sendEntityToServer(ContactsSyncAdapter.java: 621) 10-05 18:32:31.756: ERROR/AndroidRuntime(199): at com.google.android.syncadapters.contacts.ContactsSyncAdapter.processLocalChanges(ContactsSyncAdapter.java: 553) 10-05 18:32:31.756: ERROR/AndroidRuntime(199): at com.google.android.syncadapters.contacts.ContactsSyncAdapter.innerPerformSync(ContactsSyncAdapter.java: 248) 10-05 18:32:31.756: ERROR/AndroidRuntime(199): at com.google.android.syncadapters.contacts.ContactsSyncAdapter.onPerformLoggedSync(ContactsSyncAdapter.java: 130) 10-05 18:32:31.756: ERROR/AndroidRuntime(199): at com.google.android.common.LoggingThreadedSyncAdapter.onPerformSync(LoggingThreadedSyncAdapter.java: 27) 10-05 18:32:31.756: ERROR/AndroidRuntime(199): at android.content.AbstractThreadedSyncAdapter $SyncThread.run(AbstractThreadedSyncAdapter.java:163) 10-05 18:32:36.606: DEBUG/dalvikvm(199): GC_EXPLICIT freed 2304 objects / 184176 bytes in 76ms 10-05 18:32:41.666: INFO/Process(199): Sending signal. PID: 199 SIG: 9 10-05 18:32:41.686: WARN/InputManagerService(90): Window already focused, ignoring focus gain of: android.view.inputmethod.inputmethodmanage...@44c89f68 10-05 18:32:41.716: INFO/ActivityManager(90): Process com.google.process.gapps (pid 199) has died. -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

