orm - android.database.sqlite.SQLiteDiskIOException: disk I/O error ONLY At first run -


app runs , creates database , tables correctly when try save models, exception. when app crashes , when relunch app, error doesn't happen anymore! , saves , loads models well!

initialize activeandroid on application class:

@override public void oncreate() {     super.oncreate();     activeandroid.initialize(this); 

model class:

@table(name = "history_records") public class historyrecord extends model {  public static final string cost = "cost"; public static final string remote_id = "remoteid"; public static final string owner_id = "ownerid"; public static final string duration = "duration"; public static final string date = "date"; public static final string to_number = "to_number"; public static final string from_number = "from_number"; public static final string session = "session"; // stores record's position in tab @column(index = true) public string tab;  @column(name = cost) @expose @serializedname("cost") public float cost;  @column(name = remote_id, index = true) @expose @serializedname("id") public string remoteid;  @column(name = owner_id) @expose @serializedname("owner_id") public string ownerid;  @column(name = session) @expose @serializedname("session") public string session;  @column(name = from_number) @expose @serializedname("from") public string from;  @column(name = to_number) @expose @serializedname("to") public string to;  @column(name = date) @expose @serializedname("date") public string date;   @column(name = duration) @expose @serializedname("duration") public int duration;  @expose @serializedname("track") public list<track> tracks;  public historyrecord() {     super();     tracks = new arraylist<>(); }  public list<track> gettracks() {     return getmany(track.class, "history_record"); } } 

here saving code:

activeandroid.begintransaction();             try {                 (historyrecord hr : records) {                     hr.tab = tabnumber;                     hr.save();                     (int = 0, trackssize = hr.tracks.size(); < trackssize; i++) {                         hr.tracks.get(i).historyrecord = hr;                         hr.tracks.get(i).data.track = hr.tracks.get(i);                         hr.tracks.get(i).save();                         hr.tracks.get(i).data.save();                     }                 }                 activeandroid.settransactionsuccessful();             } catch (exception e) {              } {                 activeandroid.endtransaction();             } 

stack trace:

06-15 00:14:50.467  18409-18409/ e/sqlitedatabase﹕ error inserting from_number=+266696687 duration=5 session=f16a90e3-3ba7-4941-878b-22cb103a54b3 ownerid=ca0c96715b843fa0b35b57118a00191c to_number=16699990089 tab=all remoteid=b3db24018f977af5a1e63badc301ec2c id=null date=2015-03-16 09:34:21 cost=0.15 android.database.sqlite.sqlitediskioexception: disk i/o error (code 1802)         @ android.database.sqlite.sqliteconnection.nativeexecuteforlastinsertedrowid(native method)         @ android.database.sqlite.sqliteconnection.executeforlastinsertedrowid(sqliteconnection.java:782)         @ android.database.sqlite.sqlitesession.executeforlastinsertedrowid(sqlitesession.java:788)         @ android.database.sqlite.sqlitestatement.executeinsert(sqlitestatement.java:86)         @ android.database.sqlite.sqlitedatabase.insertwithonconflict(sqlitedatabase.java:1469)         @ android.database.sqlite.sqlitedatabase.insert(sqlitedatabase.java:1339)         @ com.activeandroid.model.save(model.java:155)         @ .model.historyrecordprovider$1.run(historyrecordprovider.java:65)         @ .model.historyrecordprovider.savehistoryrecord(historyrecordprovider.java:73)         @ .model.historyrecordprovider.insert(historyrecordprovider.java:148)         @ .view.fragment.calllogfragmentall$2.success(calllogfragmentall.java:114)         @ .view.fragment.calllogfragmentall$2.success(calllogfragmentall.java:107)         @ retrofit.callbackrunnable$1.run(callbackrunnable.java:45)         @ android.os.handler.handlecallback(handler.java:733)         @ android.os.handler.dispatchmessage(handler.java:95)         @ android.os.looper.loop(looper.java:136)         @ android.app.activitythread.main(activitythread.java:5001)         @ java.lang.reflect.method.invokenative(native method)         @ java.lang.reflect.method.invoke(method.java:515)         @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:785)         @ com.android.internal.os.zygoteinit.main(zygoteinit.java:601)         @ dalvik.system.nativestart.main(native method) 


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -