While Implementing facebook login , android application is getting crashed -


i new android.. trying implement facebook login facing error

please tell me can issue?

mainactivity.java  package com.atpata_new;  import com.facebook.callbackmanager; import com.facebook.facebookcallback; import com.facebook.facebooksdk; import com.facebook.login.loginresult; import com.facebook.login.widget.loginbutton; import com.facebook.facebookexception;  import android.app.activity; import android.content.intent; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.widget.textview;  public class mainactivity extends activity {      private textview info;     private loginbutton loginbutton;     private callbackmanager callbackmanager;      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);          facebooksdk.sdkinitialize(getapplicationcontext());         callbackmanager = callbackmanager.factory.create();         setcontentview(r.layout.activity_main);         info = (textview)findviewbyid(r.id.info);         loginbutton = (loginbutton)findviewbyid(r.id.login_button);         loginbutton.registercallback(callbackmanager, new facebookcallback<loginresult>() {             @override             public void onsuccess(loginresult loginresult) {                  info.settext(                         "user id: "                         + loginresult.getaccesstoken().getuserid()                          + "\n" +                         "auth token: "                         + loginresult.getaccesstoken().gettoken()                     );              }              @override             public void oncancel() {                 info.settext("login attempt canceled.");              }              @override             public void onerror(facebookexception e) {                 info.settext("login attempt failed.");              }         });      }     @override     protected void onactivityresult(int requestcode, int resultcode, intent data) {         callbackmanager.onactivityresult(requestcode, resultcode, data);     }  } 

in logcat got below error

09-26 01:50:00.783: e/androidruntime(28704): fatal exception: asynctask #5 09-26 01:50:00.783: e/androidruntime(28704): process: com.atpata_new, pid: 28704 09-26 01:50:00.783: e/androidruntime(28704): java.lang.nullpointerexception 09-26 01:50:00.783: e/androidruntime(28704): @ java.util.concurrent.concurrenthashmap.containskey(concurrenthashmap.java:911) 09-26 01:50:00.783: e/androidruntime(28704): @ com.facebook.internal.utility.queryappsettings(utility.java:822) 09-26 01:50:00.783: e/androidruntime(28704): @ com.facebook.login.widget.loginbutton$1.run(loginbutton.java:489) 09-26 01:50:00.783: e/androidruntime(28704): @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1112) 09-26 01:50:00.783: e/androidruntime(28704): @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:587) 09-26 01:50:00.783: e/androidruntime(28704): @ java.lang.thread.run(thread.java:841)

mainfest.xml

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"     package="com.atpata_new"     android:versioncode="1"     android:versionname="1.0" >      <uses-sdk         android:minsdkversion="16"         android:targetsdkversion="23"/>     <uses-permission android:name="android.permission.internet"/>      <application         android:allowbackup="true"         android:icon="@drawable/ic_launcher"         android:label="@string/app_name"         android:theme="@style/apptheme" >         <activity             android:name="com.atpata_new.mainactivity">             <intent-filter>                 <action android:name="android.intent.action.main"/>                  <category android:name="android.intent.category.launcher" />             </intent-filter>         </activity>         <activity android:name="com.facebook.facebookactivity"   android:configchanges=          "keyboard|keyboardhidden|screenlayout|screensize|orientation"   android:theme="@android:style/theme.translucent.notitlebar"   android:label="@string/app_name" />     </application>     <meta-data android:name="com.facebook.sdk.applicationid"    android:value="@string/facebook_app_id"/> </manifest> 

create blank activity fragment, if using android studio.

lets examplefragment, assume activity created

    public class examplefragment extends fragment {      loginbutton loginbutton;     textview mtextdetails;     private accesstokentracker mtokentracker;     private profiletracker mprofiletracker;       private callbackmanager mcallbackmanager;     private facebookcallback<loginresult> mcallback=new facebookcallback<loginresult>() {         @override         public void onsuccess(loginresult loginresult) {             accesstoken accesstoken = loginresult.getaccesstoken();             profile profile = profile.getcurrentprofile();             log.d("fb login success ", "in onsuccess");             if(profile != null){                 log.d("message: ", "welcome "+profile.getname());             }         }          @override         public void oncancel() {             log.d("app", "oncancel");             toast.maketext(getactivity(), "login via facebook cancelled user ", toast.length_long).show();         }          @override         public void onerror(facebookexception e) {             log.d("app", "onerror");             toast.maketext(getactivity(), "error occurred!, unable login via facebook, please try again ", toast.length_long).show();         }     };      //empty constructor      public examplefragment() {     }      public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);          facebooksdk.sdkinitialize(getactivity().getapplicationcontext());         mcallbackmanager=callbackmanager.factory.create();          setuptokentracker();         setupprofiletracker();          mtokentracker.starttracking();         mprofiletracker.starttracking();     }      @override     public void onresume() {         super.onresume();         profile profile = profile.getcurrentprofile();         if(profile != null) {             log.d("fb login success ", "in onresume");         }     }      @override     public view oncreateview(layoutinflater inflater, viewgroup container,                              bundle savedinstancestate) {         // inflate layout fragment         view view=inflater.inflate(r.layout.fragment_login, container, false);         return view;     }      public void onviewcreated(view view,bundle savedinstancestate){         super.onviewcreated(view,savedinstancestate);         loginbutton = (loginbutton) view.findviewbyid(r.id.login_button);         loginbutton.setfragment(this);          //loginbutton.setbackgroundresource(r.drawable.facebook);         loginbutton.setcompounddrawableswithintrinsicbounds(null, null, null, null);         loginbutton.setcompounddrawablepadding(0);         loginbutton.setpadding(20, 20, 20, 20);         loginbutton.settext("");         loginbutton.setwidth(250);         loginbutton.setheight(35);           //loginbutton.setcompounddrawables(null, null, null, null);         loginbutton.registercallback(mcallbackmanager, mcallback);     }      @override     public void onactivityresult(int requestcode, int resultcode, intent data) {         super.onactivityresult(requestcode, resultcode, data);         mcallbackmanager.onactivityresult(requestcode, resultcode, data);     }      @override     public void onstop() {         super.onstop();         mtokentracker.stoptracking();         mprofiletracker.stoptracking();     }      private void setuptokentracker() {         mtokentracker = new accesstokentracker() {             @override             protected void oncurrentaccesstokenchanged(accesstoken oldaccesstoken, accesstoken currentaccesstoken) {                 log.d("app currentaccesstoken", "" + currentaccesstoken);             }         };     }      private void setupprofiletracker() {         mprofiletracker = new profiletracker() {             @override             protected void oncurrentprofilechanged(profile oldprofile, profile currentprofile) {                 if(currentprofile!=null)                     log.d("app currentprofile", "" + currentprofile);                     log.d("fb login success ", "in setupprofiletracker");             }         };     }     //end of file } 

in activity xml layout

               <fragment                  android:id="@+id/fragment"                android:name="com.example.examplefragment"                tools:layout="@layout/fragment_example"                 android:layout_width="match_parent"                android:layout_height="match_parent" /> 

in fragment xml layout, fragment_example.xml

<com.facebook.login.widget.loginbutton     android:id="@+id/login_button"     style="?android:textappearancesmall"     android:layout_width="250dp"     android:layout_height="50dp"     android:text="facebook"      android:background="#3b5998"     android:textstyle="bold"      android:textcolor="@android:color/white"     android:radius="10dp"     /> 

Comments