Попытка вызвать виртуальный метод 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);

            }
        }
    });
}

0 ответов

Другие вопросы по тегам