java.lang.IllegalStateException: Could not execute method for android:onClick at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:390) at android.view.View.performClick(View.java:4780) at android.view.View$PerformClick.run(View.java:19866) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:385) at android.view.View.performClick(View.java:4780) at android.view.View$PerformClick.run(View.java:19866) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.OutputStream)' on a null object reference at com.example.firebaseproject.ProfileActivity.UpdateProfile(ProfileActivity.java:124) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:385) at android.view.View.performClick(View.java:4780) at android.view.View$PerformClick.run(View.java:19866) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) package com.example.firebaseproject; import android.content.DialogInterface; 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.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.google.android.gms.tasks.OnFailureListener; import com.google.android.gms.tasks.OnSuccessListener; import com.google.firebase.auth.FirebaseAuth; 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.StorageReference; import com.google.firebase.storage.UploadTask; import com.squareup.picasso.Picasso; import java.io.ByteArrayOutputStream; import java.io.IOException; import de.hdodenhof.circleimageview.CircleImageView; public class ProfileActivity extends AppCompatActivity { EditText ProName, ProMail, ProAge; CircleImageView circleImageView; private static final int Camera_req = 1234; private static final int Galary_req = 123; String name, mail, age; Uri imagepath; Bitmap bitmap; Button Editprofile, UpdateProfile; private FirebaseAuth firebaseAuth; private FirebaseDatabase firebaseDatabase; public FirebaseStorage firebaseStorage; private StorageReference storageReference; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_profile); circleImageView = findViewById(R.id.circleimg); ProName = findViewById(R.id.ProfileName); ProMail = findViewById(R.id.ProfileMail); ProAge = findViewById(R.id.ProfileAge); Editprofile = findViewById(R.id.ProfileEditBtn); UpdateProfile = findViewById(R.id.ProfileUpdateBtn); ProName.setEnabled(false); ProAge.setEnabled(false); ProMail.setEnabled(false); circleImageView.setClickable(false); UpdateProfile.setVisibility(View.INVISIBLE); getSupportActionBar().setDisplayHomeAsUpEnabled(true); firebaseAuth = FirebaseAuth.getInstance(); firebaseDatabase = FirebaseDatabase.getInstance(); firebaseStorage = FirebaseStorage.getInstance(); storageReference = firebaseStorage.getReference(); storageReference.child(firebaseAuth.getUid()).child("Images").child("Profile pic").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() { @Override public void onSuccess(Uri uri) { Picasso.get().load(uri).fit().centerCrop().into(circleImageView); } }); DatabaseReference databaseReference = firebaseDatabase.getReference(firebaseAuth.getUid()); databaseReference.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { UserProfileData userProfileData = dataSnapshot.getValue(UserProfileData.class); ProName.setText(userProfileData.Name); ProMail.setText(userProfileData.Email); ProAge.setText(userProfileData.Age); } @Override public void onCancelled(@NonNull DatabaseError databaseError) { Toast.makeText(ProfileActivity.this, databaseError.getCode(), Toast.LENGTH_SHORT).show(); } }); } public void EditProfile(View view) { UpdateProfile.setVisibility(View.VISIBLE); Editprofile.setVisibility(View.INVISIBLE); ProName.setEnabled(true); ProAge.setEnabled(true); ProMail.setEnabled(true); circleImageView.setClickable(true); } public void UpdateProfile(View view) { DatabaseReference databaseReference = firebaseDatabase.getReference(firebaseAuth.getUid()); name = ProName.getText().toString(); age = ProAge.getText().toString(); mail = ProMail.getText().toString(); UserProfileData userProfileData = new UserProfileData(name, mail, age); databaseReference.setValue(userProfileData); StorageReference ImageRef = storageReference.child(firebaseAuth.getUid()).child("Images").child("Profile pic"); ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 20, baos); byte[] data = baos.toByteArray(); final UploadTask uploadTask = ImageRef.putBytes(data); uploadTask.addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Toast.makeText(ProfileActivity.this, "New Image Upload Fail !", Toast.LENGTH_SHORT).show(); } }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { @Override public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { Toast.makeText(ProfileActivity.this, "New Image Upload Success !", Toast.LENGTH_SHORT).show(); } }); Toast.makeText(this, "Profile Update Successfully", Toast.LENGTH_SHORT).show(); finish(); } public void ChangepswProfile(View view) { startActivity(new Intent(this, ChangePassword.class)); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: onBackPressed(); } return super.onOptionsItemSelected(item); } public void picshow() { AlertDialog.Builder picdialog = new AlertDialog.Builder(this); picdialog.setTitle("Select Action"); String pictureIteam[] = {"GALLARY", "CAMERA"}; picdialog.setItems(pictureIteam, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { switch (i) { case 0: galaryphoto(); break; case 1: cameraphoto(); break; } } }); picdialog.show(); } public void galaryphoto() { Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent, "SelectImage"), Galary_req); } public void cameraphoto() { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, Camera_req); } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == this.RESULT_CANCELED) { return; } if (requestCode == Camera_req) { bitmap = (Bitmap) data.getExtras().get("data"); circleImageView.setImageBitmap(bitmap); } else if (requestCode == Galary_req) { imagepath = data.getData(); try { bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), imagepath); circleImageView.setImageBitmap(bitmap); } catch (IOException e) { e.printStackTrace(); } } } public void ImageChange2(View view) { picshow(); } }
source share