android - Cursor - Make sure the Cursor is initialized correctly before accessing data from it -


i following error:

couldn't read row 439, col 60 cursorwindow.  make sure cursor initialized correctly before accessing data it.         @ android.os.parcel.readexception(parcel.java:1433)         @ android.database.databaseutils.readexceptionfromparcel(databaseutils.java:185)         @ android.database.databaseutils.readexceptionfromparcel(databaseutils.java:137)         @ android.database.bulkcursorproxy.getwindow(bulkcursornative.java:164)         @ android.database.bulkcursortocursoradaptor.onmove(bulkcursortocursoradaptor.java:83)         @ android.database.abstractcursor.movetoposition(abstractcursor.java:214)         @ android.database.abstractcursor.movetonext(abstractcursor.java:245)         @ android.database.cursorwrapper.movetonext(cursorwrapper.java:166)         @ ....updatephonecontactsjob.h(updatephonecontactsjob.java:64) 

the error line corresponds while (cursor.movetonext())... use following function:

cursor cursor = mainapp.get().getcontentresolver().query(             contactscontract.data.content_uri,//contactscontract.commondatakinds.phone.content_uri             null,             null,//data.mimetype + "='" + phone.content_item_type + "'",             null,             contactscontract.data.contact_id + " asc");      int rawid = cursor.getcolumnindex(contactscontract.data.raw_contact_id);     int id = cursor.getcolumnindex(contactscontract.data.contact_id);     int lookupkey = cursor.getcolumnindex(contactscontract.data.lookup_key);     // int photouri = cursor.getcolumnindex(contactscontract.data.photo_uri);     int photoid = cursor.getcolumnindex(contactscontract.data.photo_id);     int name = cursor.getcolumnindex(contactscontract.data.display_name);     int accounttype = cursor.getcolumnindex(contactscontract.data.account_type_and_data_set);     int number = cursor.getcolumnindex(contactscontract.commondatakinds.phone.number);     int numbertype = cursor.getcolumnindex(contactscontract.commondatakinds.phone.type);     int numberlabel = cursor.getcolumnindex(contactscontract.commondatakinds.phone.label);     int mimetype = cursor.getcolumnindex(contactscontract.contacts.data.mimetype);     int rawcontactname = cursor.getcolumnindex(contactscontract.rawcontacts.account_name);      contactcomparator compid = new contactcomparator(contactcomparator.type.id);     contactcomparator compname = new contactcomparator(contactcomparator.type.name);      while (cursor.movetonext())     {         int phid = cursor.getint(id);         string phlookupkey = cursor.getstring(lookupkey);         // string phphotouri = cursor.getstring(photouri);         int phphotoid = cursor.getint(photoid);         long phrawid = cursor.getlong(rawid);         string phnumber = cursor.getstring(number);         int phnumbertype = cursor.getint(numbertype);         string phnumberlabel = cursor.getstring(numberlabel);         string phmimetype = cursor.getstring(mimetype);         string phaccounttype = cursor.getstring(accounttype);         string phrawcontactname = cursor.getstring(rawcontactname);          phonecontact contact = new phonecontact(phid, phrawid, phlookupkey, phphotoid > 0);         // funktioniert, weil kontakte nach id sortiert sind!         int contactindex = collections.binarysearch(contacts, contact, compid);         if (contactindex < 0)         {             string phname = cursor.getstring(name);             contact.setname(phname);             contacts.add(contact);         }         else         {             contact = contacts.get(contactindex);         }          string accountname = basedef.makeaccounttypereadable(phaccounttype, phrawcontactname);         contact.addaccounttype(accountname);          // liste der accounttypen merken         if (!accounttypes.contains(accountname))             accounttypes.add(accountname);          if (phmimetype.equals(contactscontract.commondatakinds.phone.content_item_type))         {             string phonelabel = (string) contactscontract.commondatakinds.phone.gettypelabel(mainapp.get().getresources(), phnumbertype, phnumberlabel);             contact.addnumber(phonelabel, phnumber);         }     }      cursor.close(); 

is function prone errors? change avoid error mentioned above?


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -

How to provide Authorization & Authentication using Asp.net, C#? -