android - java.lang.IllegalStateException: Cannot perform this operation because there is no current transaction -



android - java.lang.IllegalStateException: Cannot perform this operation because there is no current transaction -

i created asynctask class in write part (onpreexecute , doinbackgrond methods):

@override protected void onpreexecute() { // instantiate progressdialog , set style style_horizontal dialog = new progressdialog(context); dialog.setindeterminate(false); dialog.setmax(100); dialog.setprogressstyle(progressdialog.style_horizontal); dialog.setcancelable(false); dialog.settitle("update"); dialog.setmessage("download data. please wait..."); dialog.show(); super.onpreexecute(); } @override protected string doinbackground(string... urls) { int count = 0; int numusers = 0; db = new database(context); sqlitedatabase localdb = db.getwritabledatabase(); seek { jsonarray userjsonarray = connectandcreatejsonarray(urls[0]); numusers = userjsonarray.length(); localdb.begintransaction(); (int = 0; < numusers; i++) { jsonobject jobj = (jsonobject) userjsonarray.getjsonobject(i); localdb.insert("users", null, getparseduserentry(jobj)); count++; publishprogress(count * 100 / numusers); } localdb.settransactionsuccessful(); } grab (illegalstateexception e) { e.printstacktrace(); } grab (jsonexception e) { e.printstacktrace(); log.e("msg", "catch"); } { localdb.endtransaction(); } homecoming numusers+""; } private jsonarray connectandcreatejsonarray(string url) { jsonarray jsonarray = new jsonarray(); httpclient client = new defaulthttpclient(); httpget request = new httpget("http://www.example.com/file.json"); request.addheader("cache-control", "no-cache"); seek { httpresponse response = client.execute(request); httpentity entity = response.getentity(); inputstreamreader in = new inputstreamreader(entity.getcontent()); bufferedreader reader = new bufferedreader(in); stringbuilder stringbuilder = new stringbuilder(); string line = ""; while ((line=reader.readline()) != null) { stringbuilder.append(line); } jsonarray = new jsonarray(stringbuilder.tostring()); } grab (sockettimeoutexception e) { e.printstacktrace(); } grab (socketexception e) { e.printstacktrace(); } grab (illegalstateexception e) { e.printstacktrace(); } grab (clientprotocolexception e) { e.printstacktrace(); } grab (ioexception e) { e.printstacktrace(); } grab (jsonexception e) { e.printstacktrace(); } homecoming jsonarray; }

i have worked fine, today after modifies other classes , after installing 2 bundle android sdk manager, stopped work. (i installed android sdk build-tools v20 , android sdk tools version 23.0.5).

now error: java.lang.illegalstateexception: cannot perform operation because there no current transaction

here logcat:

10-13 02:11:36.700: e/androidruntime(31210): fatal exception: asynctask #1 10-13 02:11:36.700: e/androidruntime(31210): process: com.example.myapp, pid: 31210 10-13 02:11:36.700: e/androidruntime(31210): java.lang.runtimeexception: error occured while executing doinbackground() 10-13 02:11:36.700: e/androidruntime(31210): @ android.os.asynctask$3.done(asynctask.java:300) 10-13 02:11:36.700: e/androidruntime(31210): @ java.util.concurrent.futuretask.finishcompletion(futuretask.java:355) 10-13 02:11:36.700: e/androidruntime(31210): @ java.util.concurrent.futuretask.setexception(futuretask.java:222) 10-13 02:11:36.700: e/androidruntime(31210): @ java.util.concurrent.futuretask.run(futuretask.java:242) 10-13 02:11:36.700: e/androidruntime(31210): @ android.os.asynctask$serialexecutor$1.run(asynctask.java:231) 10-13 02:11:36.700: e/androidruntime(31210): @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1112) 10-13 02:11:36.700: e/androidruntime(31210): @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:587) 10-13 02:11:36.700: e/androidruntime(31210): @ java.lang.thread.run(thread.java:841) 10-13 02:11:36.700: e/androidruntime(31210): caused by: java.lang.illegalstateexception: cannot perform operation because there no current transaction. 10-13 02:11:36.700: e/androidruntime(31210): @ android.database.sqlite.sqlitesession.throwifnotransaction(sqlitesession.java:915) 10-13 02:11:36.700: e/androidruntime(31210): @ android.database.sqlite.sqlitesession.endtransaction(sqlitesession.java:398) 10-13 02:11:36.700: e/androidruntime(31210): @ android.database.sqlite.sqlitedatabase.endtransaction(sqlitedatabase.java:522) 10-13 02:11:36.700: e/androidruntime(31210): @ com.example.myapp.downloaddatafromserver.doinbackground(downloaddatafromserver.java:114) 10-13 02:11:36.700: e/androidruntime(31210): @ com.example.myapp.downloaddatafromserver.doinbackground(downloaddatafromserver.java:1) 10-13 02:11:36.700: e/androidruntime(31210): @ android.os.asynctask$2.call(asynctask.java:288) 10-13 02:11:36.700: e/androidruntime(31210): @ java.util.concurrent.futuretask.run(futuretask.java:237) 10-13 02:11:36.700: e/androidruntime(31210): ... 4 more 10-13 02:11:37.765: e/windowmanager(31210): android.view.windowleaked: activity com.example.myapp.main has leaked window com.android.internal.policy.impl.phonewindow$decorview{420f12e8 v.e..... r....... 0,0-480,322} added here 10-13 02:11:37.765: e/windowmanager(31210): @ android.view.viewrootimpl.<init>(viewrootimpl.java:346) 10-13 02:11:37.765: e/windowmanager(31210): @ android.view.windowmanagerglobal.addview(windowmanagerglobal.java:248) 10-13 02:11:37.765: e/windowmanager(31210): @ android.view.windowmanagerimpl.addview(windowmanagerimpl.java:69) 10-13 02:11:37.765: e/windowmanager(31210): @ android.app.dialog.show(dialog.java:286) 10-13 02:11:37.765: e/windowmanager(31210): @ com.example.myapp.downloaddatafromserver.onpreexecute(downloaddatafromserver.java:49) 10-13 02:11:37.765: e/windowmanager(31210): @ android.os.asynctask.executeonexecutor(asynctask.java:587) 10-13 02:11:37.765: e/windowmanager(31210): @ android.os.asynctask.execute(asynctask.java:535) 10-13 02:11:37.765: e/windowmanager(31210): @ com.example.myapp.main.onoptionsitemselected(main.java:151) 10-13 02:11:37.765: e/windowmanager(31210): @ android.app.activity.onmenuitemselected(activity.java:2600) 10-13 02:11:37.765: e/windowmanager(31210): @ com.android.internal.policy.impl.phonewindow.onmenuitemselected(phonewindow.java:1065) 10-13 02:11:37.765: e/windowmanager(31210): @ com.android.internal.view.menu.menubuilder.dispatchmenuitemselected(menubuilder.java:741) 10-13 02:11:37.765: e/windowmanager(31210): @ com.android.internal.view.menu.menuitemimpl.invoke(menuitemimpl.java:152) 10-13 02:11:37.765: e/windowmanager(31210): @ com.android.internal.view.menu.menubuilder.performitemaction(menubuilder.java:884) 10-13 02:11:37.765: e/windowmanager(31210): @ com.android.internal.view.menu.menubuilder.performitemaction(menubuilder.java:874) 10-13 02:11:37.765: e/windowmanager(31210): @ com.android.internal.view.menu.menupopuphelper.onitemclick(menupopuphelper.java:177) 10-13 02:11:37.765: e/windowmanager(31210): @ android.widget.adapterview.performitemclick(adapterview.java:298) 10-13 02:11:37.765: e/windowmanager(31210): @ android.widget.abslistview.performitemclick(abslistview.java:1113) 10-13 02:11:37.765: e/windowmanager(31210): @ android.widget.abslistview$performclick.run(abslistview.java:2911) 10-13 02:11:37.765: e/windowmanager(31210): @ android.widget.abslistview$3.run(abslistview.java:3645) 10-13 02:11:37.765: e/windowmanager(31210): @ android.os.handler.handlecallback(handler.java:733) 10-13 02:11:37.765: e/windowmanager(31210): @ android.os.handler.dispatchmessage(handler.java:95) 10-13 02:11:37.765: e/windowmanager(31210): @ android.os.looper.loop(looper.java:136) 10-13 02:11:37.765: e/windowmanager(31210): @ android.app.activitythread.main(activitythread.java:5146) 10-13 02:11:37.765: e/windowmanager(31210): @ java.lang.reflect.method.invokenative(native method) 10-13 02:11:37.765: e/windowmanager(31210): @ java.lang.reflect.method.invoke(method.java:515) 10-13 02:11:37.765: e/windowmanager(31210): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:732) 10-13 02:11:37.765: e/windowmanager(31210): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:566) 10-13 02:11:37.765: e/windowmanager(31210): @ dalvik.system.nativestart.main(native method)

on line 49 there this:

dialog.show();

online 114 there this:

localdb.endtransaction();

it strange... problem? give thanks you.

you hitting exception before begintransaction..move finally try block inside

try { jsonarray userjsonarray = connectandcreatejsonarray(urls[0]); numusers = userjsonarray.length(); if (numusers < 1) homecoming numusers + ""; seek { localdb.begintransaction(); (int = 0; < numusers; i++) { jsonobject jobj = (jsonobject) userjsonarray.getjsonobject(i); localdb.insert("users", null, getparseduserentry(jobj)); count++; publishprogress(count * 100 / numusers); } localdb.settransactionsuccessful(); } grab (illegalstateexception e) { e.printstacktrace(); } grab (jsonexception e) { e.printstacktrace(); log.e("msg", "catch"); } grab (exception e) { // else e.printstacktrace(); } { localdb.endtransaction(); } } grab (exception e) { // else e.printstacktrace(); }

android exception android-asynctask transactions connection

Comments

Popular posts from this blog

xslt - DocBook 5 to PDF transform failing with error: "fo:flow" is missing child elements. Required content model: marker* -

mediawiki - How do I insert tables inside infoboxes on Wikia pages? -

Local Service User Logged into Windows -