android - Error parsing data org.json.JSONException: End of input at character 0 of when I run on real device -


i have created android application when run on real device crashes , in logcat:

05-20 17:32:50.251: e/sensormanager(20804): thread start 05-20 17:32:50.376: e/spannablestringbuilder(20804): span_exclusive_exclusive spans cannot have 0 length 05-20 17:32:50.376: e/spannablestringbuilder(20804): span_exclusive_exclusive spans cannot have 0 length 05-20 17:33:01.411: e/json parser(20804): error parsing data org.json.jsonexception: end of input @ character 0 of  05-20 17:33:01.416: e/androidruntime(20804): fatal exception: main 05-20 17:33:01.416: e/androidruntime(20804): java.lang.nullpointerexception 05-20 17:33:01.416: e/androidruntime(20804):    @ com.mohammed.watzislam.loginactivity$1.onclick(loginactivity.java:62) 05-20 17:33:01.416: e/androidruntime(20804):    @ android.view.view.performclick(view.java:4211) 05-20 17:33:01.416: e/androidruntime(20804):    @ android.view.view$performclick.run(view.java:17267) 05-20 17:33:01.416: e/androidruntime(20804):    @ android.os.handler.handlecallback(handler.java:615) 05-20 17:33:01.416: e/androidruntime(20804):    @ android.os.handler.dispatchmessage(handler.java:92) 05-20 17:33:01.416: e/androidruntime(20804):    @ android.os.looper.loop(looper.java:137) 05-20 17:33:01.416: e/androidruntime(20804):    @ android.app.activitythread.main(activitythread.java:4898) 05-20 17:33:01.416: e/androidruntime(20804):    @ java.lang.reflect.method.invokenative(native method) 05-20 17:33:01.416: e/androidruntime(20804):    @ java.lang.reflect.method.invoke(method.java:511) 05-20 17:33:01.416: e/androidruntime(20804):    @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1006) 05-20 17:33:01.416: e/androidruntime(20804):    @ com.android.internal.os.zygoteinit.main(zygoteinit.java:773) 05-20 17:33:01.416: e/androidruntime(20804):    @ dalvik.system.nativestart.main(native method) 

this json parser class use:

public class jsonparser {      static inputstream = null;     static jsonobject jobj = null;     static string json = "";      // constructor     public jsonparser() {         super();     }      public jsonobject getjsonfromurl(string url, list<namevaluepair> params) {          // making http request         try {             // defaulthttpclient             defaulthttpclient httpclient = new defaulthttpclient();             httppost httppost = new httppost(url);             httppost.setentity(new urlencodedformentity(params));              httpresponse httpresponse = httpclient.execute(httppost);             httpentity httpentity = httpresponse.getentity();             = httpentity.getcontent();         } catch (unsupportedencodingexception e) {             e.printstacktrace();         } catch (clientprotocolexception e) {             e.printstacktrace();         } catch (ioexception e) {             e.printstacktrace();         }          try {             bufferedreader reader = new bufferedreader(new inputstreamreader(                     is, "iso-8859-1"), 8);             stringbuilder sb = new stringbuilder();             string line = null;             while ((line = reader.readline()) != null) {                 sb.append(line + "\n");             }              is.close();             json = sb.tostring();             log.e("json", json);         } catch (exception e) {             //log.e("buffer error", "error converting result " + e.tostring());         }          // try parse string json object         try {             jobj = new jsonobject(json);         } catch (jsonexception e) {             log.e("json parser", "error parsing data " + e.tostring());         }          // return json string         return jobj;     } } 

this user function (with web service addresses):

public class userfunctions {      private jsonparser jsonparser;      private static string loginurl = "http://my pc lan adress/android_login_api/include/db_functions";     private static string registerurl = "http://my pc lan adress/android_login_api/include/db_functions";      private static string login_tag = "login";     private static string register_tag = "register";      // constructor     public userfunctions() {         jsonparser = new jsonparser();     }      /**     * function make login request     * @param email     * @param password     * */     public jsonobject loginuser(string email, string password) {         // building parameters         list<namevaluepair> params = new arraylist<namevaluepair>();         params.add(new basicnamevaluepair("tag", login_tag));         params.add(new basicnamevaluepair("email", email));         params.add(new basicnamevaluepair("password", password));         jsonobject json = jsonparser.getjsonfromurl(loginurl, params);         // return json         // log.e("json", json.tostring());         return json;     }      /**     * function make reg. request     * @param name     * @param email     * @param password     * */     public jsonobject registeruser(string name, string password, string email) {         // building parameters         list<namevaluepair> params = new arraylist<namevaluepair>();         params.add(new basicnamevaluepair("tag", register_tag));         params.add(new basicnamevaluepair("name", name));         params.add(new basicnamevaluepair("email", email));         params.add(new basicnamevaluepair("password", password));          // getting json object         jsonobject json = jsonparser.getjsonfromurl(registerurl, params);         // return json         return json;     }      /**     * function login status     * */     public boolean isuserloggedin(context context) {         databasehandler db = new databasehandler(context);         int count = db.getrowcount();         if (count > 0) {             // user logged in             return true;         }         return false;     }      /**     * function logout user     * reset database     * */     public boolean logoutuser(context context) {         databasehandler db = new databasehandler(context);         db.resettables();         return true;     } } 

this user login.java

package com.mohammed.watzislam;  import java.util.hashmap;  import org.json.jsonexception; import org.json.jsonobject;  import com.mohammed.watzislam.library.databasehandler; import com.mohammed.watzislam.library.userfunctions;  import android.app.activity; import android.content.intent; import android.os.bundle; import android.util.log; import android.view.view; import android.widget.button; import android.widget.edittext; import android.widget.textview;    public class loginactivity extends activity { button btnlogin; button btnlinktoregister; edittext inputemail; edittext inputpassword; textview loginerrormsg;  // json response node names private static string key_success = "success"; private static string key_error = "error"; private static string key_error_msg = "error_msg"; private static string key_uid = "id"; private static string key_name = "name"; private static string key_email = "email"; private static string key_created_at = "created_at";  @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.login);  // importing assets buttons, text fields inputemail = (edittext) findviewbyid(r.id.loginemail); inputpassword = (edittext) findviewbyid(r.id.loginpassword); btnlogin = (button) findviewbyid(r.id.btnlogin); btnlinktoregister = (button) findviewbyid(r.id.btnlinktoregisterscreen); loginerrormsg = (textview) findviewbyid(r.id.login_error);  // login button click event btnlogin.setonclicklistener(new view.onclicklistener() {  public void onclick(view view) { string email = inputemail.gettext().tostring(); string password = inputpassword.gettext().tostring(); userfunctions userfunction = new userfunctions(); log.d("button", "login"); jsonobject json = userfunction.loginuser(email, password);  // check login response try { if (json.getstring(key_success) != null) { loginerrormsg.settext(""); string res = json.getstring(key_success);  if(integer.parseint(res) == 1){ // user logged in // store user details in sqlite database databasehandler db = new databasehandler(getapplicationcontext()); jsonobject json_user = json.getjsonobject("user");   // launch dashboard screen intent applicationinterface = new intent(getapplicationcontext(), appinterface.class);  // close views before launching dashboard applicationinterface.addflags(intent.flag_activity_clear_top); startactivity(applicationinterface);  // close login screen finish(); }else{ // error in login loginerrormsg.settext("incorrect username/password"); } } } catch (jsonexception e) { e.printstacktrace(); } } });  // link register screen btnlinktoregister.setonclicklistener(new view.onclicklistener() {  public void onclick(view view) { intent = new intent(getapplicationcontext(), registeractivity.class); startactivity(i); finish(); } }); } } 

and user register.java

package com.mohammed.watzislam;  import org.json.jsonexception; import org.json.jsonobject;  import com.mohammed.watzislam.library.databasehandler; import com.mohammed.watzislam.library.userfunctions; import android.app.activity; import android.content.intent; import android.os.bundle; import android.os.strictmode; import android.util.log; import android.view.view; import android.widget.button; import android.widget.edittext; import android.widget.textview;  public class registeractivity extends activity { button btnregister; button btnlinktologin; edittext inputfullname; edittext inputemail; edittext inputpassword; textview registererrormsg;  // json response node names private static string key_success = "success"; private static string key_error = "error"; private static string key_error_msg = "error_msg"; private static string key_uid = "id"; private static string key_name = "name"; private static string key_email = "email"; private static string key_created_at = "created_at";  @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.register);  /*strictmode.threadpolicy policy = new strictmode.threadpolicy.builder().permitall().build(); strictmode.setthreadpolicy(policy);*/  // importing assets buttons, text fields inputfullname = (edittext) findviewbyid(r.id.registername); inputemail = (edittext) findviewbyid(r.id.registeremail); inputpassword = (edittext) findviewbyid(r.id.registerpassword); btnregister = (button) findviewbyid(r.id.btnregister); btnlinktologin = (button) findviewbyid(r.id.btnlinktologinscreen); registererrormsg = (textview) findviewbyid(r.id.register_error);  // register button click event btnregister.setonclicklistener(new view.onclicklistener() {          public void onclick(view view) { string name = inputfullname.gettext().tostring(); string email = inputemail.gettext().tostring(); string password = inputpassword.gettext().tostring(); userfunctions userfunction = new userfunctions(); jsonobject json = userfunction.registeruser(name, email, password);  // check login response try { if (json.getstring(key_success) != null) { registererrormsg.settext(""); string res = json.getstring(key_success);  if(integer.parseint(res) == 1){ // user registred // store user details in sqlite database databasehandler db = new databasehandler(getapplicationcontext()); jsonobject json_user = json.getjsonobject("user");   // launch dashboard screen intent applicationinterface = new intent(getapplicationcontext(), appinterface.class); // close views before launching dashboard applicationinterface.addflags(intent.flag_activity_clear_top); startactivity(applicationinterface); // close registration screen finish(); }else{ // error in registration registererrormsg.settext("error occured in registration"); } } } catch (jsonexception e) { e.printstacktrace(); } } });  // link login screen btnlinktologin.setonclicklistener(new view.onclicklistener() {  public void onclick(view view) { intent = new intent(getapplicationcontext(), loginactivity.class); startactivity(i); // close registration view finish(); } }); } } 

the web services implemented in php , running xammp server on local pc. basically, fetch data mysql database , provide user sign up/user login/ website functions.

the device connected internet through wifi pc "using connectify".

i have been struggling find answer haven't had success (i'm new developer , used lot of code internet, modifications). , appreciated.


Comments

Popular posts from this blog

.htaccess - First slash is removed after domain when entering a webpage in the browser -

Automatically create pages in phpfox -

c# - Farseer ContactListener is not working -