android - Using web services in dialog click button but getting error -


lv.setonitemclicklistener(new onitemclicklistener() {  @override public void onitemclick(adapterview<?> arg0, view v, int p,long arg3) {      showpopup(users[p],ids[p]); } });  public void showpopup(string username,final string toid){      alertdialog.builder builder = new alertdialog.builder(this);     builder.settitle("challenge");     builder.setmessage("do want challenge "+username+"..??");     builder.setnegativebutton("yes", new onclicklistener() {         @override         public void onclick(dialoginterface dialog, int which) {             // todo auto-generated method stub             string npath = cpath+toid;             httpget = new httpget(npath);             log.d("challenge path" ,npath+"");             try {                 httpresponse response = client.execute(get);                 log.d("execution result " ,response.getstatusline().getstatuscode()+"");                 if(response.getstatusline().getstatuscode() == 200)                 {                     httpentity entity = response.getentity();                     string data = entityutils.tostring(entity);                     jsonarray jarray = new jsonarray(data);                     jsonobject jobj = new jsonobject();                     jobj = jarray.getjsonobject(0);                     string error = jobj.getstring("errormsg");                     log.d("challenge response", data);                     if(error.equalsignorecase("false"))                     {                         toast.maketext(getapplicationcontext(), "challenge has started. play turn", toast.length_long).show();                         intent intent = new intent(getapplicationcontext(), dicestwocolumn.class);                         intent.putextra("fromid", loginscreen.uid);                         intent.putextra("toid", toid);                         string sql = "insert tbl_localgame (from_id,to_id,status) values ('"+loginscreen.uid+"','"+toid+"','active')";                         db.execsql(sql);                         startactivity(intent);                     }                     else                         toast.maketext(getapplicationcontext(), "you sent challenge user", toast.length_long).show();                 }                 else                     toast.maketext(getapplicationcontext(), "network error", toast.length_long).show();             } catch (clientprotocolexception e) {                 // todo auto-generated catch block                 e.printstacktrace();             } catch (ioexception e) {                 // todo auto-generated catch block                 e.printstacktrace();             } catch (jsonexception e) {                 // todo auto-generated catch block                 e.printstacktrace();             }         }     });     builder.setpositivebutton("no", null);     builder.show(); } 

this logcat results

05-06 10:39:57.622: d/challenge path(875): http://www.base29.com/base3/yatzy/challengeuser.php?fromid=7&toid=1 05-06 10:39:57.671: d/androidruntime(875): shutting down vm 05-06 10:39:57.671: w/dalvikvm(875): threadid=1: thread exiting uncaught exception (group=0x40a13300) 05-06 10:39:57.802: e/androidruntime(875): fatal exception: main 05-06 10:39:57.802: e/androidruntime(875): android.os.networkonmainthreadexception 05-06 10:39:57.802: e/androidruntime(875):  @ android.os.strictmode$androidblockguardpolicy.onnetwork(strictmode.java:1117) 05-06 10:39:57.802: e/androidruntime(875):  @ libcore.io.blockguardos.recvfrom(blockguardos.java:163) 05-06 10:39:57.802: e/androidruntime(875):  @ libcore.io.iobridge.recvfrom(iobridge.java:513) 05-06 10:39:57.802: e/androidruntime(875):  @ java.net.plainsocketimpl.read(plainsocketimpl.java:488) 05-06 10:39:57.802: e/androidruntime(875):  @ java.net.plainsocketimpl.access$000(plainsocketimpl.java:46) 05-06 10:39:57.802: e/androidruntime(875):  @ java.net.plainsocketimpl$plainsocketinputstream.read(plainsocketimpl.java:240) 05-06 10:39:57.802: e/androidruntime(875):  @ org.apache.http.impl.io.abstractsessioninputbuffer.fillbuffer(abstractsessioninputbuffer.java:103) 05-06 10:39:57.802: e/androidruntime(875):  @ org.apache.http.impl.io.socketinputbuffer.isstale(socketinputbuffer.java:109) 05-06 10:39:57.802: e/androidruntime(875):  @ org.apache.http.impl.abstracthttpclientconnection.isstale(abstracthttpclientconnection.java:205) 05-06 10:39:57.802: e/androidruntime(875):  @ org.apache.http.impl.conn.abstractclientconnadapter.isstale(abstractclientconnadapter.java:185) 05-06 10:39:57.802: e/androidruntime(875):  @ org.apache.http.impl.client.defaultrequestdirector.execute(defaultrequestdirector.java:336) 05-06 10:39:57.802: e/androidruntime(875):  @ org.apache.http.impl.client.abstracthttpclient.execute(abstracthttpclient.java:555) 05-06 10:39:57.802: e/androidruntime(875):  @ org.apache.http.impl.client.abstracthttpclient.execute(abstracthttpclient.java:487) 05-06 10:39:57.802: e/androidruntime(875):  @ org.apache.http.impl.client.abstracthttpclient.execute(abstracthttpclient.java:465) 05-06 10:39:57.802: e/androidruntime(875):  @ com.base29.flipit.gameplayerslist$2.onclick(gameplayerslist.java:86) 05-06 10:39:57.802: e/androidruntime(875):  @ com.android.internal.app.alertcontroller$buttonhandler.handlemessage(alertcontroller.java:166) 05-06 10:39:57.802: e/androidruntime(875):  @ android.os.handler.dispatchmessage(handler.java:99) 05-06 10:39:57.802: e/androidruntime(875):  @ android.os.looper.loop(looper.java:137) 05-06 10:39:57.802: e/androidruntime(875):  @ android.app.activitythread.main(activitythread.java:4745) 05-06 10:39:57.802: e/androidruntime(875):  @ java.lang.reflect.method.invokenative(native method) 05-06 10:39:57.802: e/androidruntime(875):  @ java.lang.reflect.method.invoke(method.java:511) 05-06 10:39:57.802: e/androidruntime(875):  @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:786) 05-06 10:39:57.802: e/androidruntime(875):  @ com.android.internal.os.zygoteinit.main(zygoteinit.java:553) 05-06 10:39:57.802: e/androidruntime(875):  @ dalvik.system.nativestart.main(native method) 

it not goes try{ } body . on logcat show log.d("challenge path" ,npath+""); getting force close error. works on gingerbread emulator works on ice-cream-sandwitch

you can not perform networking operation on main thread. reason must use handler or asynctask.


Comments