java - Async task crashing during doInBackground() -
i having problem android app i'm trying develo,apparently crushes when it's execute doinbackground,my logcat looks this:
08-19 04:40:57.046: d/request!(4766): starting 08-19 04:40:57.125: w/dalvikvm(4766): threadid=9: thread exiting uncaught exception (group=0x40018578) 08-19 04:40:57.132: e/androidruntime(4766): fatal exception: asynctask #1 08-19 04:40:57.132: e/androidruntime(4766): java.lang.runtimeexception: error occured while executing doinbackground() 08-19 04:40:57.132: e/androidruntime(4766): @ android.os.asynctask$3.done(asynctask.java:200) 08-19 04:40:57.132: e/androidruntime(4766): @ java.util.concurrent.futuretask$sync.innersetexception(futuretask.java:274) 08-19 04:40:57.132: e/androidruntime(4766): @ java.util.concurrent.futuretask.setexception(futuretask.java:125) 08-19 04:40:57.132: e/androidruntime(4766): @ java.util.concurrent.futuretask$sync.innerrun(futuretask.java:308) 08-19 04:40:57.132: e/androidruntime(4766): @ java.util.concurrent.futuretask.run(futuretask.java:138) 08-19 04:40:57.132: e/androidruntime(4766): @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1088) 08-19 04:40:57.132: e/androidruntime(4766): @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:581) 08-19 04:40:57.132: e/androidruntime(4766): @ java.lang.thread.run(thread.java:1019) 08-19 04:40:57.132: e/androidruntime(4766): caused by: java.lang.illegalstateexception: target host must not null, or set in parameters. 08-19 04:40:57.132: e/androidruntime(4766): @ org.apache.http.impl.client.defaultrequestdirector.determineroute(defaultrequestdirector.java:577) 08-19 04:40:57.132: e/androidruntime(4766): @ org.apache.http.impl.client.defaultrequestdirector.execute(defaultrequestdirector.java:292) 08-19 04:40:57.132: e/androidruntime(4766): @ org.apache.http.impl.client.abstracthttpclient.execute(abstracthttpclient.java:555) 08-19 04:40:57.132: e/androidruntime(4766): @ org.apache.http.impl.client.abstracthttpclient.execute(abstracthttpclient.java:487) 08-19 04:40:57.132: e/androidruntime(4766): @ org.apache.http.impl.client.abstracthttpclient.execute(abstracthttpclient.java:465) 08-19 04:40:57.132: e/androidruntime(4766): @ com.example.prova1.jsonparser.makehttprequest(jsonparser.java:110) 08-19 04:40:57.132: e/androidruntime(4766): @ com.example.prova1.login$attemptlogin.doinbackground(login.java:159) 08-19 04:40:57.132: e/androidruntime(4766): @ com.example.prova1.login$attemptlogin.doinbackground(login.java:1) 08-19 04:40:57.132: e/androidruntime(4766): @ android.os.asynctask$2.call(asynctask.java:185) 08-19 04:40:57.132: e/androidruntime(4766): @ java.util.concurrent.futuretask$sync.innerrun(futuretask.java:306) 08-19 04:40:57.132: e/androidruntime(4766): ... 4 more 08-19 04:41:04.726: e/windowmanager(4766): activity com.example.prova1.login has leaked window com.android.internal.policy.impl.phonewindow$decorview@4054b1a8 added here 08-19 04:41:04.726: e/windowmanager(4766): android.view.windowleaked: activity com.example.prova1.login has leaked window com.android.internal.policy.impl.phonewindow$decorview@4054b1a8 added here 08-19 04:41:04.726: e/windowmanager(4766): @ android.view.viewroot.<init>(viewroot.java:263) 08-19 04:41:04.726: e/windowmanager(4766): @ android.view.windowmanagerimpl.addview(windowmanagerimpl.java:171) 08-19 04:41:04.726: e/windowmanager(4766): @ android.view.windowmanagerimpl.addview(windowmanagerimpl.java:114) 08-19 04:41:04.726: e/windowmanager(4766): @ android.view.window$localwindowmanager.addview(window.java:424) 08-19 04:41:04.726: e/windowmanager(4766): @ android.app.dialog.show(dialog.java:241) 08-19 04:41:04.726: e/windowmanager(4766): @ com.example.prova1.login$attemptlogin.onpreexecute(login.java:126) 08-19 04:41:04.726: e/windowmanager(4766): @ android.os.asynctask.execute(asynctask.java:391) 08-19 04:41:04.726: e/windowmanager(4766): @ com.example.prova1.login.onclick(login.java:93) 08-19 04:41:04.726: e/windowmanager(4766): @ android.view.view.performclick(view.java:2485) 08-19 04:41:04.726: e/windowmanager(4766): @ android.view.view$performclick.run(view.java:9080) 08-19 04:41:04.726: e/windowmanager(4766): @ android.os.handler.handlecallback(handler.java:587) 08-19 04:41:04.726: e/windowmanager(4766): @ android.os.handler.dispatchmessage(handler.java:92) 08-19 04:41:04.726: e/windowmanager(4766): @ android.os.looper.loop(looper.java:130) 08-19 04:41:04.726: e/windowmanager(4766): @ android.app.activitythread.main(activitythread.java:3687) 08-19 04:41:04.726: e/windowmanager(4766): @ java.lang.reflect.method.invokenative(native method) 08-19 04:41:04.726: e/windowmanager(4766): @ java.lang.reflect.method.invoke(method.java:507) 08-19 04:41:04.726: e/windowmanager(4766): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:867) 08-19 04:41:04.726: e/windowmanager(4766): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:625) 08-19 04:41:04.726: e/windowmanager(4766): @ dalvik.system.nativestart.main(native method) 08-19 04:41:05.070: d/dalvikvm(4766): gc_concurrent freed 235k, 48% free 2955k/5639k, external 507k/517k, paused 3ms+3ms my java code this;
public class login extends activity implements onclicklistener{ private edittext user, pass; private button msubmit, mregister; // progress dialog private progressdialog pdialog; // json parser class jsonparser jsonparser = new jsonparser(); //php login script location: //localhost : //testing on device //put local ip instead, on windows, run cmd > ipconfig //or in mac's terminal type ifconfig , ip under en0 or en1 //testing on emulator: private static final string login_url = "login_url"; //testing real server: //json element ids repsonse of php script: private static final string tag_success = "success"; private static final string tag_message = "message"; @override protected void oncreate(bundle savedinstancestate) { // todo auto-generated method stub super.oncreate(savedinstancestate); setcontentview(r.layout.activity_login); //setup input fields user = (edittext)findviewbyid(r.id.username); pass = (edittext)findviewbyid(r.id.password); //setup buttons msubmit = (button)findviewbyid(r.id.button1); mregister = (button)findviewbyid(r.id.button2); //register listeners msubmit.setonclicklistener(this); mregister.setonclicklistener(this); } @override public void onclick(view v) { // todo auto-generated method stub switch (v.getid()) { case r.id.button1: new attemptlogin().execute(); break; case r.id.button2: intent = new intent(this, register.class); startactivity(i); break; default: break; } } class attemptlogin extends asynctask<string, string, string> { /** * */ boolean failure = false; @override protected void onpreexecute() { super.onpreexecute(); pdialog = new progressdialog(login.this); pdialog.setmessage("attempting login..."); pdialog.setindeterminate(false); pdialog.setcancelable(true); pdialog.show(); } @override protected string doinbackground(string... args) { // todo auto-generated method stub // check success tag int success; string username = user.gettext().tostring();//my app seems crushing here string password = pass.gettext().tostring(); try { // building parameters list<namevaluepair> params = new arraylist<namevaluepair>(); params.add(new basicnamevaluepair("username", username)); params.add(new basicnamevaluepair("password", password)); log.d("request!", "starting"); // getting product details making http request jsonobject json = jsonparser.makehttprequest( login_url, "post", params); // check log json response log.d("login attempt", json.tostring()); // json success tag success = json.getint(tag_success); if (success == 1) { log.d("login successful!", json.tostring()); intent = new intent(login.this, readcomments.class); finish(); startactivity(i); return json.getstring(tag_message); }else{ log.d("login failure!", json.getstring(tag_message)); return json.getstring(tag_message); } } catch (jsonexception e) { e.printstacktrace(); } return null; } /** * after completing background task dismiss progress dialog * **/ protected void onpostexecute(string file_url) { // dismiss dialog once product deleted pdialog.dismiss(); if (file_url != null){ toast.maketext(login.this, file_url, toast.length_long).show(); } } } } any assistance highly appreciated!!
your log says:
target host must not null, or set in parameters. as has been pointed out, login_url may malformed. suggest log.v() , see yourself.
Comments
Post a Comment