title: Attempt to invoke virtual method 'void com.facebook.marketing.ViewIndexer.unschedule()' on a null object reference
body: <p>I am getting this kind of error since I am using Facebook Account Kit I don't know how to deal with it Please help me, guys.</p>
  
  <p>E/AndroidRuntime: FATAL EXCEPTION: main
                    Process: in.co.ashclan.thunder, PID: 29664
                    java.lang.RuntimeException: Unable to pause activity {in.co.ashclan.thunder/in.co.ashclan.thunder.ActivitySplash}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.facebook.marketing.ViewIndexer.unschedule()' on a null object reference
                        at android.app.ActivityThread.performPauseActivityIfNeeded(ActivityThread.java:3830)
                        at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3796)
                        at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3770)
                        at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3741)
                        at android.app.ActivityThread.-wrap16(ActivityThread.java)
                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1538)
                        at android.os.Handler.dispatchMessage(Handler.java:102)
                        at android.os.Looper.loop(Looper.java:163)
                        at android.app.ActivityThread.main(ActivityThread.java:6239)
                        at java.lang.reflect.Method.invoke(Native Method)
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
                     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.facebook.marketing.ViewIndexer.unschedule()' on a null object reference
                        at com.facebook.marketing.CodelessActivityLifecycleTracker$1.onActivityPaused(CodelessActivityLifecycleTracker.java:129)
                        at android.app.Application.dispatchActivityPaused(Application.java:229)
                        at android.app.Activity.onPause(Activity.java:1654)
                        at android.support.v4.app.FragmentActivity.onPause(FragmentActivity.java:441)
                        at android.app.Activity.performPause(Activity.java:7024)
                        at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1323)
                        at android.app.ActivityThread.performPauseActivityIfNeeded(ActivityThread.java:3819)
                        at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3796) 
                        at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3770) 
                        at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3741) 
                        at android.app.ActivityThread.-wrap16(ActivityThread.java) 
                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1538) 
                        at android.os.Handler.dispatchMessage(Handler.java:102) 
                        at android.os.Looper.loop(Looper.java:163) 
                        at android.app.ActivityThread.main(ActivityThread.java:6239) 
                        at java.lang.reflect.Method.invoke(Native Method) 
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) 
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794) 
  V/FA: Activity paused, time: 966233817</p>
  
  <p>Here is my code</p>
  
  <pre><code>public class ParticipantsLogin extends AppCompatActivity implements View.OnClickListener{
  
  FButton btn_facebook,btn_Gmail,btn_submit;
  FirebaseDatabase database;
  DatabaseReference table_participant ;
  FirebaseStorage storage;
  Context mContext;
  DatabaseReference table_user;
  
  //Get GMail Data from login Account
  public String personName,personFirstName,personLastName,personEmail,personId;
  Uri personPhoto ;
  
  //Root Layout
  LinearLayout linearLayout;
  
  //Participant Pojo
  ParticipantModel participantModel;
  
  //FireBase to Facebook
  private static final int RC_SIGN_IN = 9001;
  private static final String TAG = "GoogleSignIn";
  
  //FireBase to Google
  private FirebaseAuth mAuth;
  GoogleSignInClient mGoogleSignInClient;
  public static final int REQUEST_CODE = 7171;
  
  MaterialEditText edtUserName,edtPassword;
  String phone,pass;
  
  //Alert Dialog View
  MaterialEditText edtMobileNo;
  RadioButton rd_male,rd_female;
  
  //Upload Images
  Uri saveuri;
  StorageReference storageReference ;
  
  @Override
  protected void onCreate(Bundle savedInstanceState)
  {
      FacebookSdk.sdkInitialize(getApplicationContext());
      AccountKit.initialize(this);
      StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
      StrictMode.setThreadPolicy(policy);
  
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_participants_login);
      mInit();
      btn_Gmail.setOnClickListener(this);
      btn_facebook.setOnClickListener(this);
      btn_submit.setOnClickListener(this);
  
      // Configure Google Sign In
      GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
              .requestIdToken(getString(R.string.default_web_client_id))
              .requestEmail()
              .build();
  
      // Build a GoogleSignInClient with the options specified by gso.
      mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
  }
  
  //Initialisation
  private void mInit()
  {
      mContext = ParticipantsLogin.this;
      btn_facebook = (FButton)findViewById(R.id.btn_facebook);
      btn_Gmail = (FButton)findViewById(R.id.btn_Gmail);
  
      //InIt FireBase
      database = FirebaseDatabase.getInstance();
      table_participant = database.getReference("Participant"); //Linked to Participant table
      mAuth = FirebaseAuth.getInstance();
      storage = FirebaseStorage.getInstance();
      storageReference = storage.getReference();
  
      //Init ROOT LAYOUT
      linearLayout = (LinearLayout)findViewById(R.id.root_layout);
      participantModel = new ParticipantModel();
  
      //Submit Button
      btn_submit = (FButton)findViewById(R.id.btn_submit);
      edtUserName = (MaterialEditText)findViewById(R.id.edt_User_id);
      edtPassword = (MaterialEditText)findViewById(R.id.edt_User_password);
  }
  //OnclickListner
  @Override
  public void onClick(View view)
  {
      switch (view.getId())
      {
          case R.id.btn_facebook:
              startFacebookLogin();
              break;
          case R.id.btn_Gmail:
              startGmailLogin();
              break;
          case R.id.btn_submit:
                      //Save username and password
                          phone = edtUserName.getText().toString();
                          pass = edtPassword.getText().toString();
  
                          if(edtUserName.getText().length()==0)
                          {
                              edtUserName.setError("Please Enter Your Mobile No");
                          } else if (edtPassword.getText().length()==0) {
                              edtPassword.setError("Please enter correct password");
                          }else {
                              login(phone, pass);
                          }
                 break;
              }
      }
  //Methods
  private void startFacebookLogin()
  {
      Intent intent = new Intent(ParticipantsLogin.this, AccountKitActivity.class);
      AccountKitConfiguration.AccountKitConfigurationBuilder configurationBuilder =
              new AccountKitConfiguration.AccountKitConfigurationBuilder(LoginType.PHONE,
                      AccountKitActivity.ResponseType.TOKEN);
      intent.putExtra(AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION,configurationBuilder.build());
      startActivityForResult(intent,REQUEST_CODE);
  }
  private void startGmailLogin()
  {
      Intent signInIntent = mGoogleSignInClient.getSignInIntent();
      startActivityForResult(signInIntent, RC_SIGN_IN);
  }
  @Override
  protected void onActivityResult(int requestCode, int resultCode, final Intent data)
  {
      super.onActivityResult(requestCode, resultCode, data);
      try{
          //Activity result set for facebook login
          if(requestCode==REQUEST_CODE)
          {
              AccountKitLoginResult result = data.getParcelableExtra(AccountKitLoginResult.RESULT_KEY);
              if(result.getError()!=null)
              {
                  Toast.makeText(this, ""+result.getError().getErrorType().getMessage(), Toast.LENGTH_SHORT).show();
                  return;
              }else if(result.wasCancelled())
              {
                  Toast.makeText(this, "Canceled", Toast.LENGTH_SHORT).show();
                  return;
              }
              else
              {
                  if(result.getAccessToken() != null)
                  {
                      //Show Dialog
                      final AlertDialog watingDialog = new SpotsDialog(this);
                      watingDialog.show();
                      watingDialog.setMessage("Please Wait");
                      watingDialog.setCancelable(false);
                      //get Current Phone
                      AccountKit.getCurrentAccount(new AccountKitCallback&lt;Account&gt;() {
                          @Override
                          public void onSuccess(Account account) {
                              String phone  = account.getPhoneNumber().toString();
                              final String userphone = phone.substring(3);
                              Log.e("fbno--&gt;",userphone);
  
                              //Check if User Exist on Firebase if not then add it
                              table_participant.orderByKey().equalTo(userphone)
                                      .addListenerForSingleValueEvent(new ValueEventListener() {
                                          @Override
                                          public void onDataChange(DataSnapshot dataSnapshot) {
  
                                              if(!dataSnapshot.child(userphone).exists())//if User not Exist
                                              {
                                                  Intent intent = new Intent(ParticipantsLogin.this,RegistrationActivity.class);
                                                  intent.putExtra("mobilno",userphone);
                                                  startActivity(intent);
                                                  watingDialog.dismiss();
                                                  finish();
  
                                              }else //if User Exist
                                              {
                                                  startActivity(new Intent(ParticipantsLogin.this, Activity_DashBoard2.class));
                                              }
                                          }
                                          @Override
                                          public void onCancelled(DatabaseError databaseError) {
                                          }
                                      });
                          }
                          @Override
                          public void onError(AccountKitError accountKitError) {
                              Toast.makeText(ParticipantsLogin.this, ""+accountKitError.getErrorType().getMessage(), Toast.LENGTH_SHORT).show();
                          }
                      });
                  }
              }
          }
      }catch (Exception e)
      {
          Log.e("--&gt;FbError",e.toString());
      }
  
  
      // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
  
      if (requestCode == RC_SIGN_IN) {
          Task&lt;GoogleSignInAccount&gt; task = GoogleSignIn.getSignedInAccountFromIntent(data);
          try {
              // Google Sign In was successful, authenticate with Firebase
              GoogleSignInAccount account = task.getResult(ApiException.class);
              firebaseAuthWithGoogle(account);
          } catch (ApiException e) {
              // Google Sign In failed, update UI appropriately
              Log.w(TAG, "Google sign in failed", e);
              // ...
          }
      }
  }
  
  private void firebaseAuthWithGoogle(GoogleSignInAccount acct)
  {
      Log.d(TAG, "firebaseAuthWithGoogle:" + acct.getId());
      //Show Dialog
      final AlertDialog watingDialog = new SpotsDialog(this);
      watingDialog.show();
      watingDialog.setMessage("Please Wait");
      watingDialog.setCancelable(false);
  
      AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
      mAuth.signInWithCredential(credential)
              .addOnCompleteListener(this, new OnCompleteListener&lt;AuthResult&gt;() {
                  @Override
                  public void onComplete(@NonNull Task&lt;AuthResult&gt; task) {
                      if (task.isSuccessful()) {
                          // Sign in success, update UI with the signed-in user's information
                          Log.d(TAG, "signInWithCredential:success");
                          //showFireBaseDialog();
                          watingDialog.dismiss();
                          //If user is not registred then register it
                          FirebaseUser user = mAuth.getCurrentUser();
                          updateUI(user);
                      } else {
                          // If sign in fails, display a message to the user.
                          Log.w(TAG, "signInWithCredential:failure", task.getException());
                         // Snackbar.make(findViewById(R.id.main_layout), "Authentication Failed.", Snackbar.LENGTH_SHORT).show();
                          updateUI(null);
                      }
                  }
              });
  }
  //User Login
  private void login(final String phone, final String pass)
  {
      try
      {
          Log.d("--&gt;",phone +" "+pass);
  
          if (util.isConnectedToInterNet(getBaseContext())) {
  
              final ProgressDialog mDialog = new ProgressDialog(ParticipantsLogin.this);
              mDialog.setMessage("Please Wait.....");
              mDialog.setCancelable(false);
              mDialog.show();
  
              table_participant.addValueEventListener(new ValueEventListener() {
                  @Override
                  public void onDataChange(DataSnapshot dataSnapshot) {
                      //Check if User doesnt exist in database
                      if (dataSnapshot.child(phone).exists()) {
                          //mDialog.dismiss();
                          //get User Values
                          Log.d("--&gt;123",dataSnapshot.toString());
                          ParticipantModel user = dataSnapshot.child(phone).getValue(ParticipantModel.class);
                              user.setMobile(phone);
                              Log.d("PoJo--&gt;",user.toString());
                              if (user.getFirstname().equals(pass)) {
                                  Toast.makeText(getApplicationContext(),"Successful",Toast.LENGTH_LONG).show();
  
                                  startActivity(new Intent(mContext,Activity_DashBoard2.class));
                                  PreferenceUtil.setSignIn(mContext,true);
                                  PreferenceUtil.setMobileNo(mContext,phone);
                                  PreferenceUtil.setPass(mContext,pass);
  
                              mDialog.dismiss();
                              finish();
                          } else {
                              mDialog.dismiss();
                              Toast.makeText(getApplicationContext(), "Wrong Password", Toast.LENGTH_LONG).show();
                          }
                      } else {
                          mDialog.dismiss();
                          Toast.makeText(getApplicationContext(), "User Doesnt Exist", Toast.LENGTH_LONG).show();
                      }
                  }
  
                  @Override
                  public void onCancelled(DatabaseError databaseError) {
  
                  }
              });
          } else {
              Toast.makeText(ParticipantsLogin.this, "Please Check Your Internet Connection!", Toast.LENGTH_SHORT).show();
          }
      }catch (Exception e)
      {
          Log.e("--&gt;",e.toString());
          Toast.makeText(mContext, "Something went Wrong!", Toast.LENGTH_SHORT).show();
      }
  }
  private void updateUI(FirebaseUser user)
  {
      if (user != null) {
          // User is signed in
          GoogleSignInAccount acct = GoogleSignIn.getLastSignedInAccount(getApplicationContext());
          if (acct != null) {
              personName = acct.getDisplayName();
              personFirstName = acct.getGivenName();
              personLastName = acct.getFamilyName();
              personEmail = acct.getEmail();
              personId = acct.getId();
              personPhoto = acct.getPhotoUrl();
  
         /*     Toast.makeText(ParticipantsLogin.this, "" + personName + "\n" +
                      personFirstName + "\n" +
                      personLastName + "\n" +
                      personEmail + "\n", Toast.LENGTH_LONG).show();*/
              PreferenceUtil.setSignIn(ParticipantsLogin.this,true);
          } else {
              // No user is signed in
          }
          //Show Dialog
          android.support.v7.app.AlertDialog.Builder alertDialog = new android.support.v7.app.AlertDialog.Builder(ParticipantsLogin.this);
          alertDialog.setTitle("One More Step... ");
          alertDialog.setMessage("Please Enter Your Registred Mobile");
  
          LayoutInflater layoutInflater = this.getLayoutInflater();
          View view = layoutInflater.inflate(R.layout.custom_mobileno_dialog, null);
  
          edtMobileNo = (MaterialEditText) view.findViewById(R.id.edt_gm_MobileNo);
  
          alertDialog.setView(view);
          alertDialog.setIcon(R.drawable.ic_person);
  
          //Set Buttons
          alertDialog.setPositiveButton("YES", new DialogInterface.OnClickListener() {
              @Override
              public void onClick(DialogInterface dialog, int which) {
                  final String phone = edtMobileNo.getText().toString();
                  final AlertDialog watingDialog = new SpotsDialog(ParticipantsLogin.this);
                  watingDialog.show();
                  watingDialog.setMessage("Please Wait");
                  watingDialog.setCancelable(false);
  
                  //Check if User Exist on Firebase if not then add it
                  table_participant.orderByKey().equalTo(phone)
                          .addListenerForSingleValueEvent(new ValueEventListener() {
                              @Override
                              public void onDataChange(DataSnapshot dataSnapshot) {
                                  if (!dataSnapshot.child(phone).exists())//if User not Exist
                                  {
                                      Intent intent = new Intent(ParticipantsLogin.this, RegistrationActivity.class);
                                      intent.putExtra("email", personEmail);
                                      intent.putExtra("firstname", personFirstName);
                                      intent.putExtra("lastname", personLastName);
                                      intent.putExtra("mobilno", phone);
  
                                      PreferenceUtil.setMobileNo(mContext,phone);
                                      PreferenceUtil.setEmailid(mContext,personEmail);
                                      PreferenceUtil.setLastname(mContext,personLastName);
                                      PreferenceUtil.setFirstname(mContext,personFirstName);
                                      PreferenceUtil.setPass(mContext,personFirstName);
  
                                      startActivity(intent);
                                      watingDialog.dismiss();
                                      finish();
  
                                  } else//if User Exist
                                  {
                                      table_participant.child(phone)
                                              .addListenerForSingleValueEvent(new ValueEventListener() {
                                                  @Override
                                                  public void onDataChange(DataSnapshot dataSnapshot) {
                                                      ParticipantModel localUser = dataSnapshot.getValue(ParticipantModel.class);
                                                      startActivity(new Intent(ParticipantsLogin.this, Activity_DashBoard2.class));
                                                      util.currentParticipant = localUser;
  
                                                      PreferenceUtil.setMobileNo(mContext,phone);
                                                      PreferenceUtil.setEmailid(mContext,personEmail);
                                                      PreferenceUtil.setLastname(mContext,personLastName);
                                                      PreferenceUtil.setFirstname(mContext,personFirstName);
                                                      PreferenceUtil.setPass(mContext,personFirstName);
  
                                                      watingDialog.dismiss();
                                                      finish();
                                                  }
  
                                                  @Override
                                                  public void onCancelled(DatabaseError databaseError) {
                                                  }
                                              });
                                  }
                              }
                              @Override
                              public void onCancelled(DatabaseError databaseError) {
                              }
                          });
              }
          });
          alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() {
              @Override
              public void onClick(DialogInterface dialog, int which) {
                  dialog.dismiss();
              }
          });
          alertDialog.show();
      }
  }
  //Check User VAlidataions
  public boolean utilsCheck()
  {
      boolean cancel = false;
      View focusView = null;
      if (TextUtils.isEmpty(edtUserName.getText())){
          edtUserName.setError("Please enter first Name");
          focusView=edtUserName;
          cancel=true;
      }
      if (TextUtils.isEmpty(edtPassword.getText())){
          edtPassword.setError("Please enter Password");
          focusView=edtPassword;
          cancel=true;
      }
      return cancel;
  }
  </code></pre>
  
  <p>}</p>
  
  <p>public class SplashScreen extends AppCompatActivity {</p>
  
  <pre><code>Context mcontext;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_splash_screen);
  
     try {
         if (PreferenceUtil.getSignIn(this)) {
             final Handler handler = new Handler();
             handler.postDelayed(new Runnable() {
                 @Override
                 public void run() {
                     Intent intent = new Intent(SplashScreen.this, Activity_DashBoard2.class);
                     startActivity(intent);
                     finish();
  
                 }
             }, 7000);
         } else {
             final Handler handler = new Handler();
             handler.postDelayed(new Runnable() {
                 @Override
                 public void run() {
                     Intent intent = new Intent(SplashScreen.this, ParticipantsLogin.class);
                     startActivity(intent);
                     finish();
                 }
             }, 7000);
         }
  
     }catch (Exception e)
     {
         Log.e("--&gt;splashexp",e.toString());
     }
  }
  
  private void login(final String phone, final String pass) {
  
      FirebaseDatabase database = FirebaseDatabase.getInstance();
      final DatabaseReference table_user = database.getReference("Participant");
  
      Log.d("--&gt;",phone +" "+pass);
  
      if (util.isConnectedToInterNet(getBaseContext())) {
  
          final ProgressDialog mDialog = new ProgressDialog(mcontext);
          mDialog.setMessage("Please Wait.....");
          mDialog.show();
  
          table_user.addValueEventListener(new ValueEventListener() {
              @Override
              public void onDataChange(DataSnapshot dataSnapshot) {
                  //Check if User doesnt exist in database
                  if (dataSnapshot.child(phone).exists()) {
                      //mDialog.dismiss();
                      //get User Values
                      Log.d("--&gt;123",dataSnapshot.toString());
                      ParticipantModel user = dataSnapshot.child(phone).getValue(ParticipantModel.class);
                      user.setMobile(phone);
                      Log.d("PoJo--&gt;",user.toString());
                      if (user.getFirstname().equals(pass)) {
                          //Toast.makeText(getApplicationContext(),"Successful",Toast.LENGTH_LONG).show();
                          startActivity(new Intent(mcontext, DashBoard.class));
                          util.currentParticipant = user;
                          finish();
                      } else {
                          mDialog.dismiss();
                          Toast.makeText(getApplicationContext(), "Wrong Password", Toast.LENGTH_LONG).show();
                      }
                  } else {
                      mDialog.dismiss();
                      Toast.makeText(getApplicationContext(), "User Doesnt Exist", Toast.LENGTH_LONG).show();
                  }
              }
  
              @Override
              public void onCancelled(DatabaseError databaseError) {
  
              }
          });
      } else {
          Toast.makeText(mcontext, "Please Check Your Internet Connection!", Toast.LENGTH_SHORT).show();
      }
  
  }
  
  @Override
  public void onBackPressed() {
      super.onBackPressed();
      finish();
  }
  </code></pre>
  
  <p>}</p>