Question: I am getting a Null pointer error at line 127, Can someone tell me why? Its a android dating app. This activity is to change

I am getting a Null pointer error at line 127, Can someone tell me why? Its a android dating app. This activity is to change profile pic.

package com.example.augus.unbdates; import android.app.ProgressDialog; import android.content.Intent; import android.graphics.Bitmap; import android.net.Uri; import android.provider.MediaStore; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.NavUtils; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.Toolbar; import android.util.Log; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.ImageView; import com.google.android.gms.tasks.OnFailureListener; import com.google.android.gms.tasks.OnSuccessListener; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseUser; import com.google.firebase.database.ChildEventListener; import com.google.firebase.database.DataSnapshot; import com.google.firebase.database.DatabaseError; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; import com.google.firebase.database.ValueEventListener; import com.google.firebase.storage.FirebaseStorage; import com.google.firebase.storage.OnProgressListener; import com.google.firebase.storage.StorageReference; import com.google.firebase.storage.UploadTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuInflater; import android.widget.Toast; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.UUID; public class ChooseProfilePic extends AppCompatActivity { private ImageView mProfileImage; private Button mconfirm; private String userId; private String userGender; private FirebaseAuth mAuth; private DatabaseReference mUserDatabase; private Uri filePath; private final int PICK_IMAGE_REQUEST = 71; //Firebase  FirebaseStorage storage; StorageReference storageReference; //Method to check usersex for matching  public void checkUserSex() { final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); DatabaseReference male_db = FirebaseDatabase.getInstance().getReference().child("Users").child("Male"); male_db.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { if(dataSnapshot.getKey().equals(user.getUid())) { userGender = "Male"; } } @Override public void onCancelled(@NonNull DatabaseError databaseError) { } }); DatabaseReference Female_db = FirebaseDatabase.getInstance().getReference().child("Users").child("Female"); Female_db.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { if(dataSnapshot.getKey().equals(user.getUid())) { userGender = "Female"; } } @Override public void onCancelled(@NonNull DatabaseError databaseError) { } }); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_choose_profile_pic); mProfileImage = (ImageView) findViewById(R.id.ProPic); mconfirm = (Button) findViewById(R.id.ChangePic); //Enabling the action bar, Overriding method outside this scope/class.  getSupportActionBar().setDisplayShowHomeEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true); // Calling checkUserSex method  checkUserSex(); mAuth = FirebaseAuth.getInstance(); userId = mAuth.getCurrentUser().getUid(); mUserDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(userGender).child(userId); //String temp = mUserDatabase.getParent().toString();  //mUserDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(userId);   //Calling the method to find user gender,method for retriving data   /*   mUserDatabase = FirebaseDatabase.getInstance().getReference().child("Users");   mUserDatabase.addValueEventListener(new ValueEventListener() {  @Override  public void onDataChange(DataSnapshot dataSnapshot) {  Log.i(TAG, dataSnapshot.getValue(String.class));  }   @Override  public void onCancelled(DatabaseError databaseError) {  Log.w(TAG, "onCancelled", databaseError.toException());  }  });  */  /*   ValueEventListener EventListener = new ValueEventListener() {  @Override  public void onDataChange(@NonNull DataSnapshot dataSnapshot) {  Map map = (Map) dataSnapshot.getValue();  //Nullpointer exception  userGender = map.get("Gender").toString();  Toast.makeText(ChooseProfilePic.this, userGender, Toast.LENGTH_SHORT).show();  }   @Override  public void onCancelled(@NonNull DatabaseError databaseError) {   }  };   mUserDatabase.addValueEventListener(EventListener);  */   //Firebase Sotrage   storage = FirebaseStorage.getInstance(); storageReference = storage.getReference(); mProfileImage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { chooseImage(); } }); /*  mconfirm.setOnClickListener(new View.OnClickListener()  {  @Override  public void onClick(View view)  {  Intent intent = new Intent(Intent.ACTION_PICK);  intent.setType("image/*");  startActivityForResult(intent, 1);  }  });   */   mconfirm.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { uploadImage(); } }); } //Immplementing choose pic and upload pic method  private void chooseImage() { Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK  && data != null && data.getData() != null ) { filePath = data.getData(); try { Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath); mProfileImage.setImageBitmap(bitmap); } catch (IOException e) { e.printStackTrace(); } } } private void uploadImage() { if(filePath != null) { final ProgressDialog progressDialog = new ProgressDialog(this); progressDialog.setTitle("Uploading..."); progressDialog.show(); StorageReference ref = storageReference.child("profileImages").child(userId).child("images/"+ UUID.randomUUID().toString()); ref.putFile(filePath) .addOnSuccessListener(new OnSuccessListener() { @Override public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { progressDialog.dismiss(); Toast.makeText(ChooseProfilePic.this, "Uploaded", Toast.LENGTH_SHORT).show(); String downloadUrl = taskSnapshot.getMetadata().getReference().getDownloadUrl().toString(); Map userInfo = new HashMap(); userInfo.put("profileImageUrl", downloadUrl.toString()); mUserDatabase.updateChildren(userInfo); finish(); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { progressDialog.dismiss(); Toast.makeText(ChooseProfilePic.this, "Failed "+e.getMessage(), Toast.LENGTH_SHORT).show(); } }) .addOnProgressListener(new OnProgressListener() { @Override public void onProgress(UploadTask.TaskSnapshot taskSnapshot) { double progress = (100.0*taskSnapshot.getBytesTransferred()/taskSnapshot .getTotalByteCount()); progressDialog.setMessage("Uploaded "+(int)progress+"%"); } }); } } //Implementing the back button  @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if ( id == android.R.id.home ) { finish(); return true; } return super.onOptionsItemSelected(item); /*  switch (item.getItemId()) {  case android.R.id.home:  NavUtils.navigateUpFromSameTask(this);  return true;  default:  return super.onOptionsItemSelected(item);  }  */   } } 

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!