asp.net web api - Calling Api Crashes Android Application -


here code of application want call api application. web api , have written self link projectbuddy-1.apphb.com/api/signin?email=ali@yahoo.com&pass=123 code want user's data , parse , send next activity using intent

    package com.example.ali.projectbuddy;  import android.app.activity; import android.app.dialog; import android.content.intent; import android.support.v7.app.actionbaractivity; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.view.view; import android.widget.button; import android.widget.edittext; import android.database.cursor; import android.widget.toast; import android.app.activity; import android.content.intent; import android.net.connectivitymanager; import android.net.networkinfo; import android.os.asynctask; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.view.view; import android.widget.expandablelistview; import android.widget.textview; import android.widget.toast;  import java.util.arraylist; import java.util.hashmap; import java.util.list;  import org.json.jsonarray; import org.json.jsonobject; import android.media.image;   public class signin extends activity {       string data = null;     string url;     database.user user = null;     button login=null;     boolean verified=false;     string id = null;     string pass=null;     @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_sign_in);          toast.maketext(com.example.ali.projectbuddy.signin.this,"hi",toast.length_long).show();         // refferences of views           }     public void loginclicked(view v)     {           boolean isconnected  = isnetworkavailable();         if(isconnected == true)         {             toast.maketext(getapplicationcontext() , "is connected" ,toast.length_short).show();             edittext edittextusername = (edittext) findviewbyid(r.id.email);             edittext edittextpassword = (edittext) findviewbyid(r.id.password);              // user name , password             id = edittextusername.gettext().tostring();             pass = edittextpassword.gettext().tostring();              string id1;             string pass1;             id1=id;             pass1=pass;                if(id1.isempty() && pass1.isempty())             {                 toast.maketext(getapplicationcontext() , "please enter username , password" ,toast.length_short).show();             }             else if(id1.isempty())             {                 toast.maketext(getapplicationcontext() , "please enter username" ,toast.length_short).show();             }             else if(pass1.isempty())             {                 toast.maketext(getapplicationcontext() , "please enter password" ,toast.length_short).show();             }             else             {                 toast.maketext(getapplicationcontext() , "calling api" ,toast.length_short).show();                 url = "http://projectbuddy-1.apphb.com/api/signin?email=ali@yahoo.com&pass=123";                  myasynchtask task=new myasynchtask();                 task.execute();              }         }         else         {              toast.maketext(getapplicationcontext() , "no network connection, please try again." ,toast.length_long).show();         }      }       public boolean isnetworkavailable() {         connectivitymanager connectivitymanager = (connectivitymanager) getsystemservice(getapplicationcontext().connectivity_service);         networkinfo activenetworkinfo = connectivitymanager.getactivenetworkinfo();         return activenetworkinfo != null && activenetworkinfo.isconnected();      }      public class myasynchtask extends asynctask<void, void, void> {          @override         protected void onpreexecute() {              toast.maketext(getapplicationcontext() , "on preexecute" ,toast.length_short).show();             super.onpreexecute();           }          @override         protected void doinbackground(void... void0) {               try {                 servicehandler obj = new servicehandler();                 data = obj.makeservicecall(url, servicehandler.get);             } catch (exception e) {                 data = "unable locate server.";             }              try {                 toast.maketext(getapplicationcontext() , "getting json onject" ,toast.length_short).show();                 jsonobject object = new jsonobject(data);                  user.name = object.getstring("name");                 user.country = object.getstring("country");                 user.city = object.getstring("city");                 user.id = object.getint("user_id");                 user.mobileno = object.getstring("mobileno");                 //  user.image=(image)object.get("image");               } catch (exception ex) {              }              return null;         }          @override         protected void onpostexecute(void abc) {             super.onpostexecute(abc);              if(user.equals(null))             {                 verified=false;                 toast.maketext(getapplicationcontext(), "username or password incorrect", toast.length_long).show();               }             else if(data.contains("unable locate server"))             {                 verified=false;                 toast.maketext(getapplicationcontext(), "unable locate server.check internet connection.", toast.length_long).show();               }             else             {                 // editor editor = sharedpreferences.edit();                 verified=true;                 intent = new intent(getapplicationcontext(),welcome_page.class);                 i.putextra("username",user.name);                 i.putextra("useremail",user.email);                 i.putextra("userid",user.id);                 i.putextra("usermobileno",user.mobileno);                 i.putextra("usercountry",user.country);                 i.putextra("usercity",user.city);                 i.putextra("verified",verified);                 startactivity(i);             }            }        }     @override     protected void ondestroy() {         // todo auto-generated method stub         super.ondestroy();      }      /*     public void signinclick2(view v) {    //     toast.maketext(com.example.ali.projectbuddy.signin.this,"hi3",toast.length_long).show();         intent = new intent(signin.this,welcome_page.class);         i.putextra("username",user.name);         i.putextra("useremail",user.email);         i.putextra("userid",user.id);         i.putextra("usermobileno",user.mobileno);         i.putextra("usercountry",user.country);         i.putextra("usercity",user.city);         startactivity(i);     }*/         public void signupclick(view v) {             intent = new intent(this, signup.class);             startactivity(i);         }     } 

this xml

<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:background="@color/material_blue_grey_800"     android:paddingbottom="@dimen/activity_vertical_margin"     android:paddingleft="@dimen/activity_horizontal_margin"     android:paddingright="@dimen/activity_horizontal_margin"     android:paddingtop="@dimen/activity_vertical_margin"     tools:context="com.example.ali.projectbuddy..login" >     <gridlayout         android:layout_width="fill_parent"         android:layout_height="300px"         android:layout_alignparentstart="true"         android:id="@+id/gridlayout">         <imageview             android:layout_width="96dp"             android:layout_height="143dp"             android:id="@+id/imageview"             android:layout_row="0"             android:layout_column="0"             android:background="@drawable/icon1"/>          <textview android:text="@string/project"             android:textsize="18pt"             android:textalignment="center"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:textcolor="#73e0f4"             style="@style/base.textappearance.appcompat.title"             android:background="@color/material_blue_grey_800"             android:id="@+id/textview"             android:layout_alignparenttop="true"             android:layout_alignparentend="true"             android:layout_row="0"             android:layout_column="8" />     </gridlayout>     <edittext         android:id="@+id/email"         android:layout_width="match_parent"         android:layout_height="32dp"         android:layout_centerhorizontal="true"         android:layout_margintop="200dp"         android:textsize="22dp"         android:textcolor="#ffffff"         android:background="#07000000"         android:ems="10"         android:hint="email"          android:inputtype="textemailaddress"          >          <requestfocus />     </edittext>      <edittext         android:id="@+id/password"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:layout_centerhorizontal="true"         android:layout_below="@id/email"         android:layout_margintop="27dp"         android:ems="10"         android:textsize="22dp"         android:textcolor="#ffffff"         android:background="#07000000"         android:hint="password"         android:inputtype="textwebpassword" />       <textview         android:id="@+id/forgetpassword"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:textcolor="#ffffff"         android:text="forgetpassword"         android:textsize="22dp"         android:onclick="forgetpasswordclick"         android:layout_below="@+id/signup"         android:layout_alignparentstart="true"         android:layout_margintop="10dp" />      <textview         android:id="@+id/signup"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text="new user? want signup?"         android:textsize="22dp"         android:onclick="signupclick"         android:layout_margintop="40dp"         android:textcolor="#ffffff"         android:layout_below="@+id/password"         android:layout_alignparentstart="true" />      <button         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text="new button"         android:id="@+id/button"         android:clickable="true"          android:layout_alignparentbottom="true"         android:layout_alignend="@+id/password" />      </relativelayout> 

please help. thank logcat shows 06-01 00:02:23.717 3714-3714/com.example.ali.projectbuddy e/androidruntime﹕ fatal exception: main java.lang.nullpointerexception @ com.example.ali.projectbuddy.signin$myasynchtask.onpostexecute(signin.java:162) @ com.example.ali.projectbuddy.signin$myasynchtask.onpostexecute(signin.java:117) @ android.os.asynctask.finish(asynctask.java:631) @ android.os.asynctask.access$600(asynctask.java:177) @ android.os.asynctask$internalhandler.handlemessage(asynctask.java:644) @ android.os.handler.dispatchmessage(handler.java:107) @ android.os.looper.loop(looper.java:194) @ android.app.activitythread.main(activitythread.java:5371) @ java.lang.reflect.method.invokenative(native method) @ java.lang.reflect.method.invoke(method.java:525) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:833) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:600) @ dalvik.system.nativestart.main(native method)

there area few erros: if user null throw nullpoinerexception

user.equals(null)

check

user == null

instead if data null throw nullpoinerexception

(data.contains("unable locate server"))

check if null before invoking methods on object. in addition suggest read asynctask because need check whether activity still active. also, suggested not use applicationcontext on app, may cause leaks.


Comments

Popular posts from this blog

node.js - Using Node without global install -

How to access a php class file from PHPFox framework into javascript code written in simple HTML file? -

java - Null response to php query in android, even though php works properly -