Попытка вызвать виртуальный метод int android.graphics.Bitmap.getWidth() для пустой ссылки на объект
В моем приложении для Android я хочу выбрать изображение из галереи и сжать его с помощью компрессора ( https://github.com/zetbaitsu/Compressor), а затем загрузить это сжатое изображение в хранилище Firebase. Когда я выбираю любое изображение из галереи, приложение внезапно падает, за исключением следующего.
Попытка вызвать виртуальный метод int android.graphics.Bitmap.getWidth() для пустой ссылки на объект
Мой код
Призыв к намерению галереи (все права на выполнение даны)
public void selectImage(){
Intent intent = new Intent();
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent.createChooser(intent,"Select Picture"),IMAGE_SELECTION);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == IMAGE_SELECTION && resultCode == Activity.RESULT_OK){
Uri uri = data.getData();
imagePath = uri.getPath();
if(imagePath.equals("")){
Toast.makeText(getContext(), getString(R.string.imageNotSelected), Toast.LENGTH_SHORT).show();
}else{
MembersData.uploadImage(imagePath,Helper.getPhone(getContext()),profileProgressbar,getContext(), profileImage);
}
}
}
Ниже представлен метод uploadImage():
public static void uploadImage(String imagePath, String enroll, final ProgressBar mProgressbar, final Context context, final CircleImageView imgView){
DatabaseReference myRoot = FirebaseDatabase.getInstance().getReference();
final DatabaseReference currentMember = myRoot.child(MEMBERS).push();
StorageReference myRootStorage = FirebaseStorage.getInstance().getReference();
StorageReference memberImages = myRootStorage.child(enroll);
File imageFile = new File(imagePath);
File compressedImageFile = null;
try {
compressedImageFile = new Compressor(context).compressToFile(imageFile);
} catch (IOException e) {
Toast.makeText(context, e.getMessage(), Toast.LENGTH_SHORT).show();
}
memberImages.putFile(Uri.fromFile(compressedImageFile)).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
String downloadUri = String.valueOf(taskSnapshot.getDownloadUrl());
Picasso.with(context).load(downloadUri).into(imgView);
currentMember.child(PROFILE_IMG).setValue(downloadUri);
if(mProgressbar.getVisibility()== VISIBLE){
mProgressbar.setVisibility(INVISIBLE);
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(context, e.getMessage(), Toast.LENGTH_SHORT).show();
if(mProgressbar.getVisibility()== VISIBLE){
mProgressbar.setVisibility(INVISIBLE);
}
}
});
}